定位方式
ID定位
content-desc定位
xpath定位
定位工具
Appium desktop定位
每次定位都需要先执行脚本,到达定位控件的上下文。
可参考:https://www.cnblogs.com/Uni-Hoang/p/13734384.html
uiautomatorviewer
uiautomatorviewer是android SDK自带的工具,只适用与android定位。通过截屏并分析XML布局文件的方式,为用户提供控件信息查看服务。该工具位于SDK目录下的tools\bin子目录下。可以看到,它是通过bat文件启动的。
-
首先要安装SDK,可以在Android Studio下安装SDK,也可以单独安装SDK
安装后所在目录 -
将所在目录配置到PATH环境变量中:E:\software\Android\SDK\tools\bin
直接启动
配置path环境变量后
- 进行定位
图中使用ID定位
def test_getPrice(self):
self.driver.find_element(MobileBy.ID,"tv_search").click() # MobileBy继承By
self.driver.find_element(MobileBy.ID,"search_input_text").send_keys("阿里巴巴")
self.driver.find_element(MobileBy.ID,"name").click() # 第一张图片定位
# 获取价格,转换为float类型进行断言
assert float(self.driver.find_element(MobileBy.ID, "current_price").text) > 250 # 第二张图片定位
遇到的问题
- Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn‘t exist!
原来好好的,但是不知道怎么就出现这个。
在网上找了很多解决办法,可以试试:
1、在cmd命令窗口中输入 adb root 即可
2、重启手机无效
3、重新把手机拔了再插
4、重启appuim
5、重启uiautomatorviewer.bat(尝试了没用)
6、打开手机开发者权限,将USB调试按钮重新启动就好了
7、重启模拟器(我使用木木模拟器,重启后可以重新识别)
大家可以试试看看哪种方式适合自己。