Appium API(Python版)笔记
锁定屏幕
把当前应用放到后台去
1
| driver.background_app(5)
|
在 iOS 上收起键盘
检查应用是否已经安装
1
| driver.is_app_installed('com.example.android.apis')
|
安装应用到设备中去
1
| driver.install_app('path/to/my.apk')
|
从设备中删除一个应用
1
| driver.remove_app('com.example.android.apis')
|
模拟设备摇晃
关闭应用
启动应用
应用重置
列出所有的可用上下文
列出当前上下文
将上下文切换到默认上下文
1
| driver.switch_to.context(None)
|
iOS 里是 Localizable.strings Android 里是 strings.xml
发送一个按键事件给设备
Android only 得到当前 activity。
触摸动作 / 多点触摸动作
1 2
| action = TouchAction(driver) action.press(element=el, x=10, y=10).release().perform()
|
模拟用户滑动
1
| driver.swipe(75, 500, 75, 0, 0.8)
|
Places two fingers at the edges of the screen and brings them together. 在 0% 到 100% 内双指缩放屏幕
1
| driver.pinch(element=el)
|
放大屏幕 在 100% 以上放大屏幕
从设备中拉出文件
1
| driver.pull_file('Library/AddressBook/AddressBook.sqlitedb')
|
推送文件到设备中
1 2 3
| data = "some data for the file" path = "/data/local/tmp/file.txt" driver.push_file(path, data.encode('base64'))
|
打印页面元素
获取元素text属性
1 2
| element.get_attribute('text') android使用(获取元素的text值) element.text ios使用(获取元素的value值)
|
定位
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| driver.find_element_by_ios_uiautomation(uia_string) driver.find_elements_by_ios_uiautomation(uia_string) driver.find_element_by_android_uiautomator(uia_string) driver.find_elements_by_android_uiautomator(uia_string) driver.find_element_by_android_uiautomator('new UiSelector().text("竞彩篮球")') driver.find_element_by_accessibility_id(id) driver.find_elements_by_accessibility_id(id) driver.find_element_by_id(id) driver.find_elements_by_id(id) driver.find_element_by_xpath(xpath) driver.find_elements_by_xpath(xpath) driver.find_element_by_name(name) driver.find_elements_by_name(name) driver.find_element_by_class_name(class) driver.find_elements_by_class_name(class) driver.find_element(by,value) by:"id"、"xpath"、"class name"、 "name"、'-ios uiautomation'、'-android uiautomator'、'accessibility id'
|
坐标点击
1
| driver.tap([(x,y)],time)
|
输入
1 2 3
| driver.send_keys() driver.set_text() Android可用 driver.set_value() ios可用
|
截图
1
| driver.get_screenshot_as_file(filename)
|
获取手机屏幕分辨率
1 2 3
| driver.get_window_size() x = pythondriver.get_window_size()['width'] y = driver.get_window_size()['height']
|
设置屏幕分辨率
1
| driver.set_window_size(width,height)
|
获取当前坐标位置
1
| driver.get_window_position()
|
滚动
1
| driver.scroll(ele1,ele2)
|
按住element并拖动到另外一个element上
1
| driver.drag_and_drop(ele1,ele2)
|
缩小
1 2
| driver.pinch(ele) driver.zoom(ele)
|
重启app
隐藏键盘
发送键盘事件
1
| driver.keyevent(keycode)
|
按住键盘
1
| driver.press_keycode(keycode)
|
长按住键盘
1
| driver.long_press_keycode(keycode)
|
上传文件
下载文件
下载文件夹
1
| driver.pull_folder(path)
|
app隐藏后台
1
| driver.background_app(time)
|
安装app
1
| driver.install_app(path)
|
卸载app
1
| driver.remove_app(app_id)
|
启动app
关闭app
启动activity
1
| driver.start_activity(app_package, app_activity)
|
打印当前activity
锁屏
振动
打开通知栏(api 18以上)
1
| driver.open_notifications()
|
获取网络
1
| driver.network_connection
|
设置网络连接( Android only.)
1
| driver.set_network_connection(type)
|
|
Value (Alias) |
Data |
Wifi |
Airplane Mode |
|
0(None) |
0 |
0 |
0 |
|
|
1(Airplane Mode) |
0 |
0 |
1 |
|
|
2(Wifi only) |
0 |
1 |
0 |
|
|
4(Data only) |
1 |
0 |
0 |
|
|
6(All network on) |
1 |
1 |
0 |
|
type参数:
NO_CONNECTION = 0
AIRPLANE_MODE = 1
WIFI_ONLY = 2
DATA_ONLY = 4
ALL_NETWORK_ON = 6
1 2
| from appium.webdriver.connectiontype import ConnectionType driver.set_network_connection(ConnectionType.AIRPLANE_MODE)
|
获取手机输入法(返回list)
1
| driver.available_ime_engines
|
激活某种输入法
1
| driver.activate_ime_engine(engine)
|
判断输入法是否激活(返回bool)
撤销当前输入法(Android only)
1
| driver.deactivate_ime_engine()
|
得到当前设置
返回{u’ignoreUnimportantViews’: False}
更新当前设置
1
| driver.update_settings(settings)
|
settings参数为dict,如{ignoreUnimportantViews : True}
ignoreUnimportantViews
参数:调用 uiautomator 的函数setCompressedLayoutHierarchy()。由于
Accessibility 命令在忽略部分元素的情况下执行速度会加快,这个关键字能加快测试执行的速度。被忽略的元素将不能够被找到,因此这个关键字同时也被实现成可以随时改变的 设置 ( settings ) 。默认值 false
开关定位服务
1
| driver.toggle_location_services()
|