Appium API(Python版)笔记
锁定屏幕
driver.lock(5)
把当前应用放到后台去
driver.background_app(5)
在 iOS 上收起键盘
driver.hide_keyboard()
检查应用是否已经安装
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();
启动应用
driver.launch_app()
应用重置
driver.reset()
列出所有的可用上下文
driver.contexts
列出当前上下文
driver.current_context
将上下文切换到默认上下文
driver.switch_to.context(None)
iOS 里是 Localizable.strings Android 里是 strings.xml
driver.app_strings
发送一个按键事件给设备
driver.keyevent(176)
Android only 得到当前 activity。
driver.current_activity
触摸动作 / 多点触摸动作
action = TouchAction(driver)
action.press(element=el, x=10, y=10).release().perform()
模拟用户滑动
driver.swipe(75, 500, 75, 0, 0.8)
Places two fingers at the edges of the screen and brings them together. 在 0% 到 100% 内双指缩放屏幕
driver.pinch(element=el)
放大屏幕 在 100% 以上放大屏幕
driver.zoom(element=el)
从设备中拉出文件
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'))
打印页面元素
driver.page_source
获取元素text属性
element.get_attribute('text') android使用(获取元素的text值)
element.text ios使用(获取元素的value值)
定位
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'
坐标点击
driver.tap([(x,y)],time)
输入
driver.send_keys()
driver.set_text() Android可用
driver.set_value() ios可用
截图
driver.get_screenshot_as_file(filename)
获取手机屏幕分辨率
driver.get_window_size()
x = pythondriver.get_window_size()['width']
y = driver.get_window_size()['height']
设置屏幕分辨率
driver.set_window_size(width,height)
获取当前坐标位置
driver.get_window_position()
滚动
driver.scroll(ele1,ele2)
按住element并拖动到另外一个element上
driver.drag_and_drop(ele1,ele2)
缩小
driver.pinch(ele)
driver.zoom(ele)
重启app
driver.reset()
隐藏键盘
driver.hide_keyboard()
发送键盘事件
driver.keyevent(keycode)
按住键盘
driver.press_keycode(keycode)
长按住键盘
driver.long_press_keycode(keycode)
上传文件
driver.push_file(path)
下载文件
driver.pull_file(path)
下载文件夹
driver.pull_folder(path)
app隐藏后台
driver.background_app(time)
安装app
driver.install_app(path)
卸载app
driver.remove_app(app_id)
启动app
driver.launch_app()
关闭app
driver.close_app()
启动activity
driver.start_activity(app_package, app_activity)
打印当前activity
driver.current_activity
锁屏
driver.lock(time)
振动
driver.shake()
打开通知栏(api 18以上)
driver.open_notifications()
获取网络
driver.network_connection
设置网络连接( Android only.)
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
from appium.webdriver.connectiontype import ConnectionType
driver.set_network_connection(ConnectionType.AIRPLANE_MODE)
获取手机输入法(返回list)
driver.available_ime_engines
激活某种输入法
driver.activate_ime_engine(engine)
判断输入法是否激活(返回bool)
driver.is_ime_active()
撤销当前输入法(Android only)
driver.deactivate_ime_engine()
得到当前设置
driver.get_settings()
返回{u’ignoreUnimportantViews’: False}
更新当前设置
driver.update_settings(settings)
settings参数为dict,如{ignoreUnimportantViews : True}
ignoreUnimportantViews 参数:调用 uiautomator 的函数setCompressedLayoutHierarchy()。由于 Accessibility 命令在忽略部分元素的情况下执行速度会加快,这个关键字能加快测试执行的速度。被忽略的元素将不能够被找到,因此这个关键字同时也被实现成可以随时改变的 *设置 ( settings ) * 。默认值 false
开关定位服务
driver.toggle_location_services()