appium文档
一、 app操作
1. install_app()
安装app
driver.install_app("app包路径")
2. remove_app()
卸载app
driver.remove_app("app包名")
3. close_app()
关闭app
driver.close_app()
4. launch_app()
在设备上启动测试中的应用程序,官方描述:如果被测试应用程序(AUT)已关闭或后台运行,它将启动它。如果AUT已经打开,它将对其进行后台处理并重新启动它。
driver.launch_app()
5. background_app()
将app置于后台,需要指定将应用置于后台的时间,默认时间单位秒
driver.background_app(30)
6. is_app_installed()
检查应用是否已经安装,需要指定应用包名
driver.is_app_installed("app包名")
7. reset()
重置app,类似清除app缓存
driver.reset()
二、 上下文操作
1. contexts
获取所有上下文
dirver.contexts
2. current_context
获取当前的上下文
driver.current_context
3. switch_to_context()
切换上下文
driver.switch_to_context('NATIVE_APP') # 原生app
三、 按键操作
1. send_keys()
输入内容
driver.find_element_by_id('id').send_keys("test")
2. keyevent()
模拟按键, 发送一个按键码,一次只能输入一个字符。按键码对应值
# 输入字符串138
driver.keyevent(8) # 1
driver.keyevent(10) # 3
driver.keyevent(15) # 8
四、 触摸操作
TouchAction 类提供了一组实现触摸动作的方法,使用时需要倒入
from appium.webdriver.connon.touch_action import TouchAction
#
1. tap() 点击
对一个元素或控件执行点击操作
tap(self, element=None, x=None, y=None, count=1)
# 点击一个元素或坐标点(x,y)
# count用于控制点击次数,默认1次
2. press() 按压
按压一个元素或坐标点
press(self, element=None, x=None, y=None)
3. long_press() 长按
长按一个元素或坐标点
long_press(self, element=None, x=None, y=None, duration=1000)
# duration=1000 按压时间1秒
4. move_to() 移动
从上一个坐标点移动到新的元素或坐标点
move_to(self, element=None, x=None, y=None)
5. wait() 暂停
暂停脚本的执行,单位为毫秒
wait(1000) # 暂停1秒
6. release() 释放
结束的行动取消屏幕上的指针
release()
7. perform() 执行
执行的操作发送到服务器的命令操作
perform()
实例
# 设置九宫格
TouchAction(driver).press(x=385, y=1122).wait(2000) \
.move_to(x=385, y=1468).wait(1000) \
.move_to(x=385, y=1820).wait(1000) \
.move_to(x=720, y=1820).wait(1000) \
.move_to(x=1049, y=1820).wait(1000) \
.release().perform()
六、 高级api
1. Screenshot 截图
以文件形式获取当前窗口屏幕截图
driver.save_screenshot("test.png")
以二进制数据形式获取当前窗口屏幕截图
driver.get_screenshot_as_png()
以base64编码的形式获取当前窗口屏幕截图
driver.get_screenshot_as_base64()
截图某个元素
driver.find_element(By.XPATH, "//*[@text='交易']").screenshot("test.png")
2. source
获取当前页面源代码
driver.page_source
3. rotate 设置屏幕方向
设置横屏
driver.orientation = "LANDSCAPE"
设置竖屏
driver.orientation = "PORTRAIT"
获取当前设备/浏览器方向
driver.orientation()
4. Geolocation 地理位置
获取当前的地理位置
driver.location()
设置当前的地理位置 (只支持模拟器)
driver.set_location(49, 123, 10)
参数:
纬度 number 所需的地理位置纬度
经度 number 所需的地理位置经度
高度 number 所需的地理位置高度(可选)
5. Logs 日志
获取可用日志类型的列表
driver.log_types()
获取给定日志类型的日志
# 获取driver日志
driver.get_log('driver')
6. Settings 设置
更新设备上的当前设置 Settings API
driver.update_settings({"sample": "value"}))
检索设备上的当前设置
driver.get_settings
7. Performance Data 性能数据
获取可用性能类型的列表,如cpu,内存,网络流量和电池
dirver.get_performance_data_types()
获取给定类型的系统状态信息,如cpu,内存,网络流量和电池
p = driver.get_performance_data("my.app.package", "cpuinfo", 5)
参数:
包名字 string 应用程序的包名称
数据类型 string 想要读取的系统状态的类型。它应该是受支持的性能数据类型之一。
data_read_timeout number 尝试读取次数(可选)
8. Recording Screen录屏
开始录制屏幕 (只支持安卓8.0以上)
driver.start_recording_screen()
停止录制屏幕
driver.stop_recording_screen()