Appium客户端类库
以下内容收集与网络:
-
锁定
锁定屏幕
driver.lock(5)
-
将应用切换至后台
将当前的应用切换到后台,然后可以让其在指定时间内回到前台,或者让它一直留在后台。
传递给这个方法的参数有两种类型:- 一个整型(秒):表示后台状态维持多久。-1 表示持续置于后台。这种风格的参数已经被废弃。
- 一个看起来像 {“timeout”: secs} 的对象。里面的 secs 是含义和第一个类型一样的整型数字(即表示置于后台多少秒),或者为 null (表示持续置于后台)。
driver.background_app(5) # 置于后台,持续5秒 driver.background_app(-1) # 持续置于后台 driver.background_app({'timeout': None}) # 持续置于后台
-
收起键盘
收起键盘。 注意: 在 iOS,这辅助功能并不能保证一定有效。因为没有用于隐藏键盘的自动化钩子方法(译者注:可以理解为 iOS 没有提供隐藏键盘的 API),而且应用是允许用户去使用各种策略去收起键盘的,无论是点击键盘以外的区域,还是向下滑动诸如此类…相比于使用该方法,我们更加鼓励你去思考 用户 在应用中是如何收起键盘(如滑动,点击一个固定的坐标,等等…),并让 Appium 去执行这些方法,而不是调用这个 API 。话虽如此,但这里默认的行为还是可能帮助到你的。
driver.hide_keyboard()
-
启动Activity
在当前 app 打开一个 activity,或者新打开一个应用并启动一个 acticity, 仅支持 Android。
driver.start_activity('com.example.android.apis', '.Foo')
-
打开通知栏
打开通知栏,仅支持 Android。
driver.open_notifications()
-
应用是否已安装
driver.is_app_installed("com.example.android.apis")
-
安装应用
driver.install_app('path/to/my.apk')
-
卸载应用
driver.remove_app('com.example.android.apis')
-
摇一摇
模拟摇晃设备的操作
driver.shake()
-
关闭应用
driver.close_app()
-
启动(Launch)
为 desired capabilities 启动一个 session。请注意只有设置了 autoLaunch=false 关键字时才会生效。这不是为了随意启动一个应用或 activities ——如果你想这么做,请使用 start_activity 这个 desired capability 的参数。这个方法的使用场景是在你设置了 autoLaunch=false 后,用来继续执行初始化(“launch”)流程的。(译者注:举个例子,国产系统经常会在应用安装时弹出提示窗阻碍安装,此时可以通过 autoLaunch=false 来让应用安装后先执行你的脚本来关掉弹窗,然后再用这个函数来继续启动应用。)
driver.launch_app()
-
重置
重置应用
driver.reset()
-
可用的上下文(Contexts)
列出所有可用的上下文(contexts)
driver.contexts
-
当前上下文(context)
列出当前的上下文(context)
driver.current_context
-
切换至默认的上下文(context)
driver.switch_to.context(None)
-
应用的字符串
获得应用的字符串。(译者注:这里实际指的是返回应用的多语言文本,即每个 string 变量及在指定语言上的显示内容。例如 {“action_forgot_password”:“Forgot your password?”} 。在 android 上对应的是项目中的 strings.xml 多语言配置文件)
driver.app_strings
-
按键事件
给设备发送按键事件
driver.keyevent(176)
-
当前Activity
获取当前的Activity.
driver.current_activity
-
当前包名(package)
driver.current_package
-
点击操作/多点触控操作
用于生成点击操作的API.
action = TouchAction(driver) action.press(element=el, x=10, y=10).release().perform()
-
滑动屏幕
driver.swipe(start_x = 75,start_y=500,end_x=75,end_y=0,duration=800)
-
捏手势
driver.pinch(element=el)
-
放大屏幕
driver.zoom(element=el)
-
滚动到
滚动到指定元素
driver.execute_script("mobile: scroll", {"direction": "down", "element": element.id})
-
拉取文件
driver.pull_file('Library/AddressBook/AddressBook.sqlitedb')
-
推送文件
data = "some data for the file" path = "/data/local/tmp/file.txt" driver.push_file(path, data.encode('base64'))
-
设置
在这你会找到关于获取或设置 appium 服务器设置的示例代码。
current_settings = driver.get_settings() driver.update_settings({"someSetting": true})
重置策略
自动化平台 | 默认 | fullReset | noReset |
---|---|---|---|
iOS (包括XCUITest) | 测试完成后关闭模拟器。不销毁模拟器。不从真机上卸载应用。 | 测试完成后卸载应用, 模拟器测试结束后销毁模拟器。 | 测试结束后不销毁或者关闭模拟器。启动测试运行在任意正在运行的模拟器或者插入的真机。 |
Android | 测试结束后停止应用,清理应用数据,不卸载应用包。 | 测试结束后停止应用,清理应用数据,卸载应用包。 | 不停止应用,不清理应用数据,不卸载应用包。 |