
作为基础知识的准备,你可以先看一下苹果公司关于UIAutomation的文档,另外还有一篇快速入门的介绍苹果Instruments的文档也值得看看,当然,如果你有一个免费的Apple开发者账号的话,你可以看一下WWDC 2010 - Session 306 – 使用Instruments进行用户界面自动化测试的幻灯片或者视频。除此之外,包括在Xcode中的OCUnit测试框架也可以用来为你的应用程序编写单元测试。
首先 npm install appium-uiautomator2-driver 目前装的是最新版237 但是发现与android 的chrome不匹配 然后就下载了 236的
chromedriver 版本对应关系 url
>
元素定位主要介绍如何使用uiautiomatorviewer,通过定位到页面上的元素,然后进行相应的点击等 *** 作。uiautiomatorviewer是android-sdk自带的一个元素定位工具,非常简单好用,使用uiautomatorviewer,你可以检查一个应用的UI来查看应用的布局和组件以及相关的属性。
一、启动uiautomatorviewerbat
1打开目录D:\androidsdk\android-sdk-windows\tools
2双击启动,启动之后出现如下界面:
3也可以使用命令行进行启动,cd到tools目录下,然后输入uiautomatorviewerbat回车后启动服务。
二、连接手机
1cmd打开输入adb devices,确认手记已连接
2打开手机淘宝页面,让屏幕处于点亮状态
3点击左上角的安卓机器人按钮Devices Screenshot按钮刷新页面
三、定位元素
1移动鼠标到需要定位的元素上,如搜索输入框
2右下角可以看到元素对应的属性
text:搭配新宠不能缺
resource-id:comtaobaotaobao:id/home_searchedit
class:androidwidgetEditText
四、点搜索框
1前面一篇启动app后休眠五秒,等待页面加载完成
2通过id来定位到搜索框,然后点击
五、最终代码如下
# coding=utf-8
from appium import webdriver
import time
desired_caps = {
'platformName': 'Android',
'deviceName': '30d4e606',
'platformVersion': '50',
'appPackage': 'comtaobaotaobao',
'appActivity': 'comtaobaotaowelcomeWelcome',
}
driver = webdriverRemote('>
# 休眠五秒等待页面加载完成
timesleep(5)
driverfind_element_by_id("comtaobaotaobao:id/home_searchedit")click()
六、元素定位
1appium的webdriver提供了11种元素定位的方法,在selenium的基础上扩展了三个,可以在pycharm里面输入driverfind_element_by然后会自动匹配出来
2多的三个:
driverfind_element_by_accessibility_id()
driverfind_element_by_android_uiautomator()
1Command 'E\:\\Development\\Android\\SDK\\platform-tools\\adbexe -P 5037 -s 127001\:62001 shell getprop robuildversionrelease' exited with code 3221226356'; Stderr: ''; Code: '3221226356
原因:adb版本问题,在cmd执行adb version命令发现adb的版本为2900-XXXX
解决方法:升级adb版本,可通过Android studio>tools>sdk manager>Appearance&Behavior > System Setting >Android SDK>SDK tools升级Android SDK Platform-Tools 到2902,adb版本即升级成功,问题解决
2页面从首页切换到第二个页面后,无法定位元素,使用selfdriverpage_source方法获取页面信息无反应。使用XPATH="//"查找元素。发现得到的元素是首页的元素
原因:Android 70切换Activity的bug,需要使用UiAutomator2测试
解决方法:selfdesired_caps['automationName'] ='UiAutomator2'
3切换UiAutomator2后,adbexe -P 5037 -s 1d6f926c shell pm install /data/local/tmp/appium_cache/56abf1bf10f6562619a2dd8fb060718e27c4cb28apk命令执行失败
原因:手动在cmd执行命令,返回Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install ioappiumuiautomator2server without first uninstalling],但实际上手机上找不到该apk。使用adb shell pm list packages 发现package: ioappiumuiautomator2server
解决方法:手动执行adb uninstall package: ioappiumuiautomator2server卸载
以上就是关于android自动化测试使用uiautomator怎样获取context全部的内容,包括:android自动化测试使用uiautomator怎样获取context、python-appium提示无法定位元素,添加uiautomator2后运行报错、python uiautomator 怎么获得元素的text等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)