在web测试中,可以使用F12辅助元素定位,但在app中没有这样的工具,需要安装第三方的工具
目前主流的工具有:
打开后,设置所需能力(就是我们代码中编写的cpas内容),设置完成后点击【启动会话】按钮
可以看到跟我们手机端上的首页是一致的,点击左边的某个元素,可以显示出对应的元素相关内容
可以看到App Source中一层一层嵌套很多层内容,这个是xml格式代码,跟html树型结构类似
元素定位注意项:
选中返回的元素,点击【点击元素】按钮,可以操作跳转到对应页面
appium inspect 中还有录制功能,也没太大作用,比较鸡肋,可以转换成python语言,来提示如何编写元素定位
import time
from appium.webdriver import Remote
# 启动一次请求
# 1.指明需要连接的服务地址和端口号
# 2.You must include a platformName capability
caps = {"platformName": "Android",
"udid": "emulator-5554",
"appPackage": "com.lemon.lemonban",
"appActivity": ".activity.WelcomeActivity"
}
driver = Remote(command_executor='http://127.0.0.1:4723/wd/hub',
desired_capabilities=caps)
# 设置隐性等待
driver.implicitly_wait(10)
# 查找元素
# id查找
# driver.find_element('id', 'com.lemon.lemonban:id/navigation_my')
# xpath查找
el = driver.find_element('xpath', '//*[@resource-id="com.lemon.lemonban:id/navigation_my"]')
el.click()
time.sleep(3)
driver.quit()
这个工具要比appium inspectg速度快很多,打开方式如下:找到安卓SDK的安装路径–>tools–>bin–>uiautomatorviewer.bat,双击打开,还可以创建快捷方式放到桌面,方便打开
缺点:不能验证元素表达式是不是唯一的
weditor是python的第三方库,所以要安装:pip install weditor
缺点:不能和appium同时打开(可以跟airtest一块使用)
安装完成之后,在python命令窗口中输入weditor回车,会自动代开网页如下(如果打开的页面连接不上,提示服务错误之类的,关闭重新输入命令 python -m weditor)
选择系统,默认是安卓,然后输入设备名称,点击连接按钮即可,如果切换了页面可以,点击刷新页面按钮,点击某个元素,会显示对应的内容,还显示出了xpath表达式
总结:三种元素定位工具各有各的优点和缺点,注意事项一定要三再记住,我一开始打开weditor又忘记关闭appium,就不能使用,想使用哪个工具看自己的选择
点击看一下Remote的源码,可以看到是调用的WebDriver类,但为什么又叫Remote,因为进行了重命名,点击看一下webdriver的源码
appium中,WebDriver类中继承了很多类,最重要的是AppiumSearchContext类,点击查看源码
AppiumSearchContex类,又继承了很多类,其中重要的是WebDriver.Remote,点击Remote查看源码
点击selenium中的webdriver查看源码,可以看到也是进行了重命名Chrome
点击import后面的WebDriver查看源码,可以看到跟appium的还是不一样的
点击RemoteWebDriver类查看源码,可以看到跟appium最后继承的类是一样的
放到一块可以看到,两个路径是一模一样的,所以说Chrome跟Remote转来转去,继承的是同一个父类WebDriver,所以有好多方法的用法跟selenium中一样
原文地址:https://blog.csdn.net/weixin_40611700/article/details/122125534
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_21428.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!