global driver
# 元素定位
driver.find_element_by_id("id") # id定位
driver.find_element_by_name("name") # name定位
driver.find_element_by_link_text("text") # 链接名定位
driver.find_element_by_partial_link_text("text") # 通过元素部分可见链接文本定位
driver.find_element_by_tag_name("name") # 通过查找html的标签名称定位元素
driver.find_element_by_xpath("xpath") # 路径定位
driver.find_element_by_class_name("android.widget.LinearLayout") # 类名定位
driver.find_element_by_css_selector("css") # css选择器定位

# 元素集合复数定位
driver.find_elements_by_id("id") # id元素集合
driver.find_elements_by_name("name") # name元素集合
driver.find_elements_by_link_text("text") # 链接名元素集合
driver.find_elements_by_partial_link_text("text") # 部分元素可见链接集合
driver.find_elements_by_tag_name("name") # html标签名集合
driver.find_elements_by_xpath("xpath") # 路径定位集合
driver.find_elements_by_class_name("android.widget.LinearLayout") # 类名定位集合
driver.find_elements_by_css_selector("css") # css选择器定位集合

# 输入框输入
driver.element.send_keys("中英")

# 锁定屏幕
driver.lock(5)

# 把当前应用置于后台
driver.background_app(5)

# 收起键盘
driver.hide_keyboard()

# 打开一个应用或者activity,仅安卓端
driver.start_activity('com.example.android.apis', '.Foo')

# 打开下拉通知栏 仅Android
driver.open_notifications()

# 拖动元素,将元素origin_el拖到目标元素destination_el
driver.drag_and_drop(self, origin_el, destination_el):

# 检查app是否已安装
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()

# 启动 (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

# 切换到默认的上下文 (context)
# 将上下文切换到默认上下文
driver.switch_to.context(None)

# 获取应用的字符串
driver.app_strings

# 按键事件 (Key Event)给设备发送一个按键事件
driver.keyevent(176)

# 获取当前的activity
driver.current_activity

# 触摸动作(TouchAction) / 多点触摸动作(MultiTouchAction)
action = TouchAction(driver)
action.press(element=el, x=10, y=10).release().perform()

# 滑动(Swipe)模拟用户滑动
# 注意:appium滑动规则是x从左到右变大,y从上到下变大
driver.swipe(start=75, starty=500, endx=75, endy=0, duration=800)

# 捏 (Pinch)捏屏幕 (双指往内移动来缩小屏幕)
driver.pinch(element=el)

# 放大 (Zoom)放大屏幕 (双指往外移动来放大屏幕)
driver.zoom(element=el)

# 滑动到某个元素 (Scroll To)
todo: python

# 从设备中拉出文件 (Pull File)
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'))

# 断言
Assert.assertEquals("I am a div", div.getText()); //跳转到指定页面并在该页面所以用元素id进行交互

# 检查文本是否符合预期
assertEqual('I am a div', div.text)

# 输入法是否有活动 返回真假
is_ime_active(self):

# 返回当前安卓设备可用的输入法
driver.available_ime_engines(self):

# 激活安卓设备中的制定输入法
driver.activate_ime_engine(self, engine):

# 关闭当前的输入法(android)
driver.deactivate_ime_engine(self):

# 打开安卓设备上的位置定位设置
driver.toggle_location_services()

# 设置设备的经纬度
:Args:
- latitude纬度 - String or numeric value between -90.0 and 90.00
- longitude经度 - String or numeric value between -180.0 and 180.0
- altitude海拔高度- String or numeric value
用法 driver.set_location(纬度,经度,高度)

# 点击
element.click()

# 清除元素内容
element.clear()

# 返回元素的文本内容
element.text()

# 提交表单
element.submit(self):

# 元素是否可用
element.is_enabled()

# 元素是否可选
element.is_slected()

# 元素是否可见
element.is_displayed(http://www.my516.com)

# 获取元素的大小(高和宽)
new_size["height"] = size["height"]
new_size["width"] = size["width"]
driver.element.size

# 获取元素左上角的坐标
# 用法 driver.element.location
'''返回element的x坐标, int类型'''
driver.element.location.get('x')
'''返回element的y坐标, int类型'''
driver.element.location.get('y')

# 获取当前元素的截图为Base64编码的字符串
img_b64 = element.screenshot_as_base64

# 执行JS
# 在当前窗口/框架(特指 Html 的 iframe )同步执行 javascript 代码
driver.execute_script('document.title')
# 异步执行代码,其他代码在执行
driver.execute_async_script('document.title')

# 获取当前url
driver.current_url

# 获取页面源
driver.page_source

# 关闭当前窗口
driver.close()

# 关闭应用
driver.quit()

# chrome上进行测试
{
'platformName': 'Android',
'platformVersion': '4.4',
'deviceName': 'Android Emulator',
'browserName': 'Chrome'
}

# 真机测试
{
'automationName': 'Selendroid',
'platformName': 'Android',
'platformVersion': '2.3',
'deviceName': 'Android Emulator',
'app': myApp,
'appPackage': 'com.mycompany.package',
'appActivity': '.MainActivity'
}

# 多点触控
"""
规范中的可用事件有:
* 短按 (press)
* 释放 (release)
* 移动到 (moveTo)
* 点击 (tap)
* 等待 (wait)
* 长按 (longPress)
* 取消 (cancel)
* 执行 (perform)

最新文章

  1. DbUtility v3
  2. css问题 ie7兼容性问题
  3. itunes connect提交app教程
  4. eclipse搭建Log4J日志环境
  5. KSImageNamed-Xcode
  6. 每个Javascript开发者都应当知道的那些事
  7. Matlab绘图基础——axis设置坐标轴取值范围
  8. request+response+jsp+el+jstl
  9. Jmeter之Redis读写
  10. python 发送email邮件带附件
  11. python中安装request模块
  12. spring mvc 形参类型
  13. ubuntu 查看软件安装目录以及安装版本
  14. python构造栈结构
  15. CCF 100012. 技能树
  16. JAVAEE——宜立方商城05:前台系统搭建、首页展示、Cms系统的实现
  17. CC1101是一种低成本真正单片的UHF收发器
  18. TypeError: can't convert console.log(...) to primitive type
  19. Openstack 网络服务 Neutron计算节点部署 (十一)
  20. 014——VUE中v-if语法在网站注册中的实际应用

热门文章

  1. Android.应用软件.常用程序下载地址_20190913
  2. node.js—创建、删除、追加文件等方法汇总
  3. vue—拖拽
  4. Hadoop Map/Reduce
  5. Web API 入门一
  6. HDU 1880 题解(字符串哈希)
  7. 3.Golang的包导入
  8. 知乎使用selenium反爬虫的解决方案
  9. 深入ArrayList看fast-fail机制
  10. 网页中<a>标签新窗口和location.href 新窗口打开