Appium 客户端的操作
**锁定解锁屏幕 **
driver.lock(5)
将把当前应用放到后台 5 秒
driver.background_app(5)
**收起键盘 **
driver.hide_keyboard()
启动 ACTIVITY
在当前应用中打开一个 activity 或者启动一个新应用并打开一个 activity 。 只能在 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')
**摇晃 (SHAKE) 关闭应用 **
driver.shake()
**关闭应用 **
driver.close_app()
启动 (LAUNCH)
根据服务关键字 (desired capabilities) 启动会话 (session) 。请注意这必须在设定 autoLaunch=false 关键字时才能生效。这不是用于启动指定的 app/activities ————你可以使用 start_activity 做到这个效果————这是用来继续进行使用了 autoLaunch=false 关键字时的初始化 (Launch) 流程的
driver.launch_app()
**应用重置(相当于卸载重装应用) **
driver.reset()
列出所有的可用上下文 (CONTEXT)
context 可以理解为 可进入的窗口 。例如,对于原生应用,可用的 context 和默认 context 均为 NATIVE_APP
driver.contexts
**列出当前上下文 **
driver.current_context
**获取当前页面的源码(可以辅助元素定位) **
driver.page_source
**截图屏幕图片 **
driver.get_screenshot_as_file(r'E:\img\img1.png') # 截取整个屏幕
获取应用程序的字符串 (APP STRINGS)
driver.app_strings
给设备发送一个按键事件(KEY EVENT)(只限安卓)
driver.keyevent(176)
键盘事件的key 码
https://developer.android.com/reference/android/view/KeyEvent.html
获取当前 activity。只能在 Android 上使用
driver.current_activity
模拟用户滑动(SWIPE)
driver.swipe(start=75, starty=500, endx=75, endy=0, duration=800)
捏屏幕(PINCH) (双指往内移动来缩小屏幕)
driver.pinch(element=el)
放大 (ZOOM)屏幕 (双指往外移动来放大屏幕)
driver.zoom(element=el)
**滑动 (SCROLL)到某个元素。从一个元素滚动到另一个元素 **
driver.scroll(originalEl, destinationEl ) # originalEl - 要滚动的元素 destinationEl - 要滚动到的元素
**设置元素的值 **
driver.set_value(element=el,Val) # 设置 el 元素的值
推送文件到设备中去(PUSH FILE),推送文件需要转换为'base64'
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})
**多个点点击(最多五个点) **
driver.tap([(100, 20), (100, 60), (100,100)], 500) # list 中的元组放 5 个点,500 表示按下 500ms
#在控件上执行press 按操作。
press(WebElement el)
#在坐标为(x,y)的点执行press 操作
press(int x, int y)
#在控件el 的左上角的x 坐标偏移x 单位,y左边偏移y 单位的坐标上执行press 操作。
press(WebElement el, int x, int y)
#释放操作,代表该系列动作的一个结束标志。
release()
#以el 为目标,从另一个点移动到该目标上
moveTo(WebElement el)
#以 (x,y) 点 为 目 标 , 从 另 一 个 点 移 动 到 该 目 标 上
moveTo(intx,inty)
# 以控件el 的左上角为基准,x 轴向右移动x 单位,y 轴向下移动y 单位。以该点为目标,从另一个点移动到该点上。
moveTo(WebElement el, int x, int y)
# 在控件的中心点上敲击一下
tap(WebElement el)
#在(x,y)点轻击一下
tap(int x, int y)
#以控件el 的左上角为基准,x轴向右移动x 单位,y轴向下移动y 单位。在该点上轻击。
tap(WebElement el, int x, int y)
#代表一个空操作,等待一段时间
waitAction()
#等待ms 秒
waitAction(int ms)
#控件长按
longPress(WebElement el)
#点 长 按
longPress(intx,inty)
#偏移点长按
longPress(WebElement el, int x, int y)
#取消执行该动作
cancel()
#执行该动作
perform()