移动测试Appium之API手册

阅读: 评论:0

移动测试Appium之API手册

移动测试Appium之API手册

点击上方蓝字“开源优测”一起玩耍

声明

        本公众号所有内容,均属微信公众号: 开源优测  所有,任何媒体、网站或个人未经授权不得转载、链接、转贴或以其他方式复制发布/发表。已经本公众号协议授权的媒体、网站,在使用时必须注明"稿件来源微信公众号:开源优测",违者本公众号将依法追究责任。

移动测试Appium之API手册

前言

本文对Appium Python Client中webdriver.py代码进行分析说明。

笔者使用python3.6版本,安装在C:Python36目录下,在C:Python36Libsite-packagesappiumwebdriverwebdriver.py找到本文要分析的目标模块文件。

源码概要

我们先看一下webdriver.py中源码概要情况,如图:

从上图来看,整个模块分为两大块:

  1. 导入相关的基础模块或资源

  2. 从webdriver.Remote继承,定义和实现了Appium Python版本的客户端驱动webdriver类

由此我们可以清楚的得出以下几个结论:

  1. Appium Python的webdriver客户端是依赖selenium2中的webdriver的

  2. Appium-Python-Client定义和实现了针对android和ios移动设备专用的方法

  3. 只要是selenium2中定义的webdriver方法在移动设备端可用,那么在移动测试时,可以直接用

API说明

下面我们把上述的API以一个表格的方式进行说明,以便后续大家在使用appium进行自动化测试时使用,这些API是必须熟练掌握的。

def __init__(self, command_executor='127.0.0.1:4444/wd/hub',desired_capabilities=None, browser_profile=None, proxy=None, keep_alive=False):# 调用父类的__init__进行初始化super(WebDriver, self).__init__(command_executor, desired_capabilities, browser_profile, proxy, keep_alive)        # 初始化command_executorif selfmand_executor is not None:self._addCommands()        # 初始化错误处理器_handler = MobileErrorHandler()        # 切换至默认上下文self._switch_to = MobileSwitchTo(self)        # 初始化默认定位方式# add new method to the `find_by_*` pantheonBy.IOS_UIAUTOMATION = MobileBy.IOS_UIAUTOMATIONBy.IOS_PREDICATE = MobileBy.IOS_PREDICATEBy.IOS_CLASS_CHAIN = MobileBy.IOS_CLASS_CHAINBy.ANDROID_UIAUTOMATOR = MobileBy.ANDROID_UIAUTOMATORBy.ACCESSIBILITY_ID = MobileBy.ACCESSIBILITY_ID
关键函数分析

在webdirver类中,主要定义了以下函数,本文只将常用的函数进行说明,其他的请自行查阅代码:

函数:contexts
参数:无
描述:返回当前会话所有的上下文
用法&#ts

函数:current_context
参数:无 描述:返回当前会话中当前的上下文
用法:driver.current_context

函数:context
参数:无 描述:返回当前会话中当前的上下文
用法&#t

函数:find_element_by_ios_uiautomation
参数:uia_string
描述:通过元素名称查找一个ios元素
用法:driver.find_element_by_ios_uiautomation('.elements()[1].cells()[2]')

函数:find_elements_by_ios_uiautomation
参数:uia_string
描述:通过元素名查找N个ios元素
用法:driver.find_elements_by_ios_uiautomation('.elements()[1].cells()[2]')

函数:find_element_by_ios_predicate
参数:predicate_string
描述:通过一个谓词查找一个ios元素
用法:driver.find_element_by_ios_predicate('label == "myLabel"')

函数:find_elements_by_ios_predicate
参数:predicate_string
描述:通过一个谓词查找N个ios元素
用法:driver.find_elements_by_ios_predicate('label == "myLabel"')

函数:find_element_by_ios_class_chain
参数:class_chain_string
描述:通过class chain字符串查找一个ios元素
用法:driver.find_element_by_ios_class_chain

函数:find_elements_by_ios_class_chain
参数:class_chain_string
描述:通过class chain字符串查找N个ios元素
用法:driver.find_elements_by_ios_class_chain('XCUIElementTypeWindow[2]/XCUIElementTypeAny[-2]')

函数:find_element_by_android_uiautomator
参数:uia_string
描述:通过元素名称查找一个android元素
用法:driver.find_element_by_android_uiautomator('.elements()[1].cells()[2]')

函数:find_elements_by_android_uiautomator
参数:uia_string
描述:通过元素名称查找N个android元素
用法:driver.find_elements_by_android_uiautomator('.elements()[1].cells()[2]')

函数:find_element_by_accessibility_id 参数:id
描述:通过元素accessibility id查找一个元素
用法:driver.find_element_by_accessibility_id()

函数:find_elements_by_accessibility_id
参数:id
描述:通过元素accessibility id查找N个元素
用法:driver.find_elements_by_accessibility_id()

函数:create_web_element
参数:element_id
描述:使用指定的element id创建一个web元素

函数:scroll
参数:origin_el, destination_el
描述:从一个元素位置滚动到另一个元素位置
用法:driver.scroll(el1, el2)

函数:drag_and_drop
参数:origin_el, destination_el
描述:将一个元素从一个位置拖曳到另外一个位置
用法:driver.drag_and_drop(origin_el, destination_el)

函数:tap
参数:positions, duration
描述:点击屏幕指定位置,并在该位置停留duration指定的时长
用法:driver.tap([(100, 20), (100, 60), (100, 100)], 500)

函数:swipe
参数:start_x, start_y, end_x, end_y, duration=None
描述:从一个位置到另外一个位置滑动屏幕
用法:driver.swipe(100, 100, 100, 400)

函数:flick
参数:start_x, start_y, end_x, end_y
描述:从一个位置到另外一个位置快速滑动
用法:driver.flick(100, 100, 100, 400)

函数:pinch
参数:element=None, percent=200, steps=50
描述:捏
用法:driver.pinch(element)

函数:zoom
参数:element=None, percent=200, steps=50
描述:缩放屏幕
用法&#(element)

函数:app_strings
参数:language=None, string_file=None
描述:获取应用字符串

函数:reset
参数:无
描述:重置设备当前的app
用法&#set()

函数:hide_keyboard
参数:key_name=None, key=None, strategy=None
描述:隐藏键盘

函数:current_activity
参数:无
描述:获取设备当前app的activity
用法:driver.current_activity

函数:current_package
参数:无
描述:获取设备当前运行app的package
用法:driver.current_package

函数:set_value
参数:element, value
描述:给指定元素设置值
用法:driver.set_value(element, value)

函数:pull_file
参数:path
描述:从设备拉取文件
用法:driver.pull_file(path)

函数:push_file
参数:path, base64data
描述:以Base64编码方式向设备推送文件
用法:driver.push_file(path, base64data)

函数:background_app
参数:seconds
描述:将指定的app放在后端运行一段时间
用法:driver.background_app(seconds)

函数:is_app_installed
参数:bundle_id
描述:根据bundle id判断app是否已经安装
用法:driver.is_app_installed(bundle_id)

函数:install_app
参数:app_path
描述:安装app到设备
用法:driver.install_app(app_path)

函数:remove_app
参数:app_id
描述:卸载指定的app
用法&#ve_app(app_id)

函数:launch_app
参数:无
描述:启动desired capabilities指定的app
用法:driver.launch_app

函数:close_app
参数:无
描述:停止desired capabilities指定的app
用法:driver.close_app()

函数:start_activity
参数:app_package, app_activity, **opts
描述:启动指定参数的app, android专用

函数:lock
参数:seconds
描述:锁屏一段时间,ios专用
用法:driver.lock(5)

函数:shake
参数:无
描述:摇动设备
用法:driver.shake()

函数:open_notifications
参数:无
描述:打开通知,android专用,要求API level 18及以上
用法:driver.open_notifications()

函数:get_settings
参数:无
描述:获取当前appium服务端的设置
用法&#_settings

函数:update_settings
参数:settings
描述:重设当前会话的设置,请参见 .md

函数:device_time
参数:无
描述:返回设备的日期时间
用法: driver.device_time

开源优测

分享软件测试开源技术、经验、方案的首发平台

长按二维码/微信扫描 关注开源优测

QQ群:260407012

苦叶子私人微信:liyimin1912

有问题,可留言或加好友进微信群

苦叶子原创文章首发平台

本文发布于:2024-02-08 19:58:40,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170739369968594.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:手册   测试   Appium   API
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23