1. contexts(self):
返回当前会话中的上下文,使用后可以识别H5页面的控件
用法:
driver.contexts
2. current_context(self):
返回当前会话的当前上下文
用法:
driver.current_context
3. context(self):
返回当前会话的当前上下文。
用法:
driver.context用法driver. Context
4. find_element_by_accessibility_id(self, id):
通过accessibility id查找元素
用法:
driver.find_element_by_accessibility_id()
5. scroll(self, origin_el, destination_el):
从元素origin_el滚动至元素destination_el
参数:
- originalEl - 起始滑动的元素
- destinationEl- 滑动的最终目标元素
用法:
driver.scroll(el1, el2)
6. drag_and_drop(self, origin_el, destination_el):
将元素origin_el拖到目标元素destination_el
参数:
- originEl - 拖动的元素
- destinationEl - 拖动的目标位置元素
用法:
driver.drag_and_drop(el1,el2)
7. tap(self, positions, duration=None):
模拟手指点击(最多五个手指),可设置按住时长(毫秒)
参数:
- positions - 点击的坐标(最多5个,元组列表)
- duration - 点击持续时长(ms)
用法:
driver.tap([(100, 20), (100, 60), (100, 100)], 500)
8. swipe(self, start_x, start_y, end_x, end_y, duration=None):
从A点滑动至B点,滑动时间为毫秒
参数:
- start_x - 起始的X坐标
- start_y - 起始的Y坐标
- end_x - 目标X轴坐标
- end_y - 目标Y坐标
- duration - 滑动的时长(ms)-可理解为滑动速度
用法:
driver.swipe(100, 100, 100, 400)
9. reset(self):
重置应用
用法 driver.reset()
10. keyevent(self, keycode, metastate=None):
发送按键码(安卓仅有),按键码可以上网址中找到
参数:
- keycode - the keycode to be sent to the device
- metastate - meta information about the keycode being sent
用法:
dr.keyevent(‘4’)
11. press_keycode(self, keycode, metastate=None):
发送按键码(安卓仅有),按键码可以上网址中找到
参数:
- keycode - the keycode to be sent to the device
- metastate - meta information about the keycode being sent
用法
driver.press_ keycode(‘4’)
12. long_press_keycode(self, keycode, metastate=None):
发送一个长按的按键码(长按某键)
参数:
- keycode - the keycode to be sent to the device
- metastate - meta information about the keycode being sent
用法 driver.long_press_keycode(‘4’)
13. current_activity(self):
获取当前的activity
用法
print(driver.current_activity())
14. wait_activity(self, activity, timeout, interval=1):
等待指定的activity出现直到超时,interval为扫描间隔1秒即每隔几秒获取一次当前的activity返回的True 或 False
参数:
- activity - 目标activity
- timeout - 超时时长
- interval - 扫描间隔
用法
driver.wait_activity(‘.activity.xxx’,5,2)
15. background_app(self, seconds):
后台运行app多少秒
用法:
driver.background_app(5) 置后台5秒后再运行
16. is_app_installed(self, bundle_id):
检查app是否有安装,返回 True or False
参数:
- bundle_id - app包name
用法 :
driver.is_app_installed(“com.xxxx”)
17. install_app(self, app_path):
安装app,app_path为安装包路径
参数:
- app_path - app路径
用法:
driver.install_app(app_path)
18. remove_app(self, app_id):
写在app
参数:
- app_id - app包name
用法:
driver.remove_app(“com.xxx.”)
19. close_app(self):
关闭app
用法:
driver.close_app()
20. open_notifications(self):
打系统通知栏(仅支持API 18 以上的安卓系统)
用法:
driver.open_notifications()
21. network_connection(self):
返回网络类型(数值)
用法:
driver.network_connection
22. set_network_connection(self, connectionType):
设置手机网络模式
数值对照表:
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
设置网络类型
用法
1.先导入模块:from appium.webdriver.connectiontype import ConnectionType
2.使用:dr.set_network_connection(ConnectionType.WIFI_ONLY)
ConnectionType的类型有:
-NO_CONNECTION = 0
-AIRPLANE_MODE = 1
-WIFI_ONLY = 2
-DATA_ONLY = 4
-ALL_NETWORK_ON = 6
23. available_ime_engines(self):
返回安卓设备可用的输入法
用法:
print(driver.available_ime_engines)
24. is_ime_active(self):
检查设备是否有输入法服务活动。返回真/假。
用法:
print(driver.is_ime_active())
25. activate_ime_engine(self, engine):
激活安卓设备中的指定输入法,设备可用输入法可以从“available_ime_engines”获取
参数:
-engine-输入法的activity (e.g.,'com.android.inputmethod.latin/.LatinIME')
用法 driver.activate_ime_engine(“com.android.inputmethod.latin/.LatinIME”)
26. deactivate_ime_engine(self):
关闭安卓设备当前的输入法
用法:
driver.deactivate_ime_engine()
27. active_ime_engine(self):
返回当前输入法的包名
用法:
driver.active_ime_engine
28. toggle_location_services(self):
打开安卓设备上的位置定位设置
用法:
driver.toggle_location_services()
29. set_location(self, latitude, longitude, altitude):
设置设备的经纬度
参数:
- latitude纬度 - 值在-90.0和90.00之间
- longitude经度 - 值在-180.0和180.0之间
- altitude海拔高度- String or numeric value
用法:
driver.set_location(纬度,经度,高度)
30. tag_name(self):
返回元素的tagName属性
用法:
element.tag_name()
31. text:
返回元素的文本值
用法:
element.text
32. click(self):
点击元素
用法:
element.click()
33. clear(self):
清除输入的内容
用法:
element.clear()
34. is_selected(self):
返回元素是否已经选择。可以用来检查一个复选框或单选按钮被选中。
用法:
element.is_slected()
35. is_enabled(self):
返回元素是否可用True of False
用法:
element.is_enabled()
36. find_element_by_id(self, id_):
通过元素的ID定位元素
参数:
- id_ -id.
用法:
driver. find_element_by_id(“id”)
37. find_elements_by_id(self, id_):
通过元素ID定位,含有该属性的所有元素
参数:
- id_ - Id .
用法:
driver. find_elements_by_id(“id”)
38. find_element_by_name(self, name):
通过元素Name定位(元素的名称属性text),该方法在1.6.3版本后已经取消,可使用Find_element_by_accessibility_id(content-desc)代替
参数:
- name - name .
用法:
driver.find_element_by_name(“name”)
39. find_elements_by_name(self, name):
通过元素Name定位(元素的名称属性text),含有该属性的所有元素
参数:
- name - name.
用法:
driver.find_element_by_name(“name”)
40. find_element_by_link_text(self, link_text):
通过元素可见链接文本定位
参数:
- link_text - Link text .
用法:
driver.find_element_by_link_text(“text”)
41. find_element_by_link_text(self, link_text):
通过元素可见链接文本定位,含有该属性的所有元素
参数:
- link_text - Link text
用法:
driver.find_elements_by_link_text(“text”)
42. find_element_by_partial_link_text(self, link_text):
通过元素部分可见链接文本定位
参数:
- link_text - Link text .
用:
find_element_by_partial_link_text(“text”)
43. find_elements_by_partial_link_text(self, link_text):
通过元素部分可见链接文本定位,含有该属性的所有元素
参数:
- link_text - Link text .
用:
find_elements_by_partial_link_text(“text”)
44. find_element_by_tag_name(self, name):
通过查找html的标签名称定位元素,该方法在1.6.3版本后已经取消,使用class_name替代
参数:
- name - tag name
用法:
driver.find_element_by_tag_name(“name”)
45. find_elements_by_tag_name(self, name):
通过查找html的标签名称定位所有元素
参数:
- name -tag
用法:
driver.find_elements_by_tag_name(“name”)
46. find_element_by_xpath(self, xpath):
通过Xpath定位元素
参数:
xpath - xpath .
用法:
find_element_by_xpath(“//*”)
47. find_elements_by_xpath(self, xpath):
使用xpath批量查找元素
参数:
- xpath - xpath
用法:
find_elements_by_xpath(“//*”)
48. find_element_by_class_name(self, name):
通过元素class name属性定位元素
参数:
- name - class name
用法;
driver. find_element_by_class_name(“android.widget.LinearLayout”)
49. find_elements_by_class_name(self, name):
通过元素class name属性定位所有含有该属性的元素
参数:
- name - class name.
用法:
driver. find_elements_by_class_name(“android.widget.LinearLayout”)
50. find_element_by_css_selector(self, css_selector):
通过CSS选择器定位元素
参数:
- css_selector - CSS,
用法:
driver. find_element_by_css_selector(“a.nav#home”)
51. send_keys(self, *value):
在元素中模拟输入(开启appium自带的输入法并配置了appium输入法后,可以输入中英文)
参数:
- value - 输入的字符串,也可以是文件.
用法:
driver.find_element_by_name('username').send_keys("admin")
52. size(self):
获取元素的大小(高和宽)
用法:
driver.element.size
53. location(self):
获取元素左上角的坐标
用法:
driver.element.location
driver.element.location.get('x'):'''返回element的x坐标, int类型'''
driver.element.location.get('y'):'''返回element的y坐标, int类型'''
54. screenshot_as_base64(self):
获取当前元素的截图为Base64编码的字符串
用法:
img = element.screenshot_as_base64
55. execute_script(self, script, *args):
在当前窗口/框架(特指 Html 的 iframe )同步执行 javascript 代码。你可以理解为如果这段代码是睡眠5秒,这五秒内主线程的 javascript 不会执行
参数:
- script: js代码.
- *args:js参数.
用法:
driver.execute_script('document.getElement')
56. current_url(self):
获取当前页面的网址。
用法:
driver.current_url
57. page_source(self):
获取当前页面的源。
用法:
driver.page_source
58. close(self):
关闭当前窗口
用法:
driver.close()
59. quit(self):
退出driver,即所有的appium动作停止
用法:
driver.quit()
60. get_screenshot_as_file(filename):
屏幕截图
参数:
-filename-截图命名
使用:
driver.get_screenshot_as_file(filename)
61. get_windows_size():
获取屏幕大小(长宽)
使用:
driver.get_windows_size()