模拟器
- bluestacks 类似网易mumu,中文名蓝叠
- 网易mumu 默认支持arm指令,不过版本只有6.0
- genymotion 默认只支持x86 需要插件才可以支持arm指令
- 真机
mumu设置
- 自定义显示 宽720 -高1080
- 开发者选项-》输入-》显示坐标与点击位置
演练app
常用api
- click
- send_keys
- get_attribute
- page source
TouchAction
- 长按
- 滑动
定位
-
id
-
aid
-
xpath
-
uiautomator new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(“WebView”).instance(0));
-
find_element.find_elementn 父子关系
xpath的用法
- 绝对定位(不建议) /hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.FrameLayout[1]/android.widget.FrameLayout/android.widget.ImageView
相对定位(根据重要属性定位)
- //*[@resource-id=‘com.xueqiu.android:id/user_profile_icon’ and @class=‘android.widget.ImageView’]
- //*[contains(@resource-id, ‘user_profile_icon’) and contains(@class, ‘Image’)]
- //*[@text=‘基金’ and contains(@resource-id, ‘button’)]
- //*[@text=‘基金’ and @index=‘1’]
- (//*[@text=‘基金’])[1]
- //[contains(@resource-id, ‘buttons_container’)]//[@text=‘基金’]
android uiautomator定位
def test_uiautomator(self):
self.driver.find_element_by_android_uiautomator('new UiScrollable('
'new UiSelector().scrollable(true).instance(0))'
'.scrollIntoView('
'new UiSelector().text("Views").instance(0));').click()
self.driver.find_element_by_android_uiautomator('new UiScrollable('
'new UiSelector().scrollable(true).instance(0))'
'.scrollIntoView('
'new UiSelector().text("Tabs").instance(0));').click()
toast识别
- toast原理
- toast识别方法
断言
- 普通的断言
- harmcrest
用例实战
- 上节课作业演练实战
- 参数化
课间休息与下节课预告
- 16:35回来
- 作业讲解
- 具体用例增强
TODO
- 8.1 appium 1.14 无法获取class
Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn’t exist!
Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn’t exist!
appium session需要关闭,才可以使用uiautomatorviewer
appium server
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install -g appium
课后作业
- 点击自选,添加股票,判断股票添加成功
- 再次添加股票,添加股票的按钮要变成“已添加”
- 删除已经添加的股票,再次搜索股票,股票的按钮变成“加自选”
- 注意“自选”菜单,可能会动态浮动
下周课程
- 使用PO重构用例,并完成真实app的自动化测试
- webview、小程序、toast
- appium原理