Appium学习笔记汇总
Appium原理:
原理图:
appium自动化架构借鉴了selenium,上面这幅图包含三个模块 1.自动化程序(appium客户端) 2.AppiumServer 3.移动设备
- 自动化程序
由测试人员编写的脚本,实现具体的手机自动化功能
通过客户端,出具体的指令控制手机
- AppiumServer
Appium Server 是 Appium 组织开发的程序,它负责管理手机自动化环境,并且转发 自动化程序的控制指令给手机,并且转发 手机给 自动化程序的响应消息。
- 移动设备
接收处理自动化指令
Appium定位元素:
1.界面元素查看工具:
uiautomaterviewer (SDK目录 tools\bin) 不太好使,appium inspector(可以直接验证表达式能否定位到元素)
2.定位元素的方法:
根据id,与web自动化不同 这里的id 指的是resource-id
根据class name 可以选择一个或多个
根据accessibility id 查询界面的元素要以后content-desc属性
根据xpath 语法 #selenium 中xpath表达式中每个节点名是html 的tagname appium每个节点名是元素的class属性值ji
UIAutomator:
根据id,classname,xpath这些方法选择元素,其实底层都是利用了安卓uiautomator框架的api功能实现的,参考 这里的谷歌安卓官方文档介绍: https://developer.android.google.cn/training/testing/ui-automator
主要是通过UiSelector这个类里面的方法实现元素定位的,例如:
code = 'new UiSelector().text("热门").className("android.widget.TextView")' ele = driver.find_element_by_android_uiautomator(code) ele.click()
3.元素操作:
1.click 点击
2.tap 点按 ----根据坐标点击 driver.tap([position],time) time表示点按停留时间,长了就变长按了
3.send_keys()
4.webelment.text 获取界面文本信息
5.driver.swipe(start_x = x1,start_y = y1,end_x=x2,end_y=y2,duration=800)
6.driver.press_keycode(AndroidKey.ENTER) 按键 #from appium.webdriver.extensions.android.nativekey import AndroidKey
7.driver.open_notifications() #查看通知栏
8.长按、双击、移动
Appium的 TouchAction 类提供了更多的手机操作方法,比如:长按、双击、移动参考源代码中的注释 https://github.com/appium/python-client/blob/master/appium/webdriver/common/touch_action.py 比如,下面就是一个长按的例子
from appium.webdriver.common.touch_action import TouchAction # ... actions = TouchAction(driver) actions.long_press(element) actions.perform()
4.内嵌网页自动化
参考http://www.python3.vip/tut/auto/appium/04/

浙公网安备 33010602011771号