企业网站建设及运营现状分析,重庆市工程建设标准化网站,兴义市住房和城乡建设局网站,长春有哪些互联网大厂一、元素定位工具 app应用的元素使用的是控件定位#xff0c;不同于web网页#xff0c;web网页定位元素通常使用的是F12工具#xff0c;那么在app当中我们则要借助其它的工具来辅助定位。
1.uiautomatorviewer.bat uiautomatorviewer.bat工具在安装完ADT工具之后不同于web网页web网页定位元素通常使用的是F12工具那么在app当中我们则要借助其它的工具来辅助定位。
1.uiautomatorviewer.bat uiautomatorviewer.bat工具在安装完ADT工具之后位于ADT安装路径的android-sdk-windows\tools\bin目录下 双击启动即可启动之后在初始界面上点击如图位置按钮可以进行截屏 截屏后即可查看各个元素截屏后的效果 2.appium检查器 在appium启动后的日志窗口界面点击“启动检查器会话”会跳转到检查器启动参数配置界面参数配置直接将我们代码里面的启动参数搬过来就可以了。 点击启动后会根据我们配置的应用信息自动跳转到应用的主页面我们就可以开始进行元素定位了 二、常用元素定位方法 appium从selenium中继承了所有的元素定位方法并且增加了自己的一些方法我们先看看appium的源码 但是从继承selenium中的定位方法中一般只会用到id、class_name、xpath这三种方法总结起来appium中常用的定位方法一般有以下五种
通过id定位resource-id 通过class_name定位class 通过accessibility_id定位content-desc 通过android_uiautomator定位SDK自带的java开发的uiautomator自动化框架 通过xpath定位 UIAutomator介绍 UIAutomator是安卓移动端的UI自动化框架要求Android4.3以上
提供了一系列API执行UI测试在系统或者第三方app上面 允许在被测设备上执行操作比如打开系统设置菜单 适合编写黑盒自动化测试 UIAutomator框架的主要特点
元素定位UI Automator Viewer。扫描、分析待测应用的UI组件的图像工具 元素操作Accessing device state。在目标设备和app上各种操作 元素识别UI Automator APIs。在多个应用程序中捕获和操作UI组件 1.id定位 driver.find_element_by_id() 或者 MobileBy.ID 注意这里是使用resource-id而不是id
loc (MobileBy.ID, com.taobao.taobao:id/iv_image) 2.class_name定位 driver.find_element_by_class_name() 或者 MobileBy.CLASS_NAME 直接使用class即可
loc (MobileBy.CLASS_NAME, android.widget.ImageView) 3.accessibility_id定位 driver.find_element_by_accessibility_id() 或者 MobileBy.ACCESSIBILITY_ID 这里使用content-desc即可
loc (MobileBy.ACCESSIBILITY_ID, 管理) 4.android_uiautomator定位 driver.find_element_by_android_uiautomator() 或者 MobileBy.ANDROID_UIAUTOMATOR
该方法的参数为UiSelector类定位元素的表达式
new UiSelector().函数名称定位表达式
实例化一个UiSelector对象然后通过实例接口调用具体用到的一些方法参考官网的说明网址
这里调用UiSelector对象的text()方法即可更多的方法请参考上述地址
# 注意字符串必须要用双引号 loc (MobileBy.ANDROID_UIAUTOMATOR, new UiSelector().text(去逛逛)) 5.xpath定位 driver.find_element_by_xpath() 或者 MobileBy.XPATH 注意这里的标签名一定是使用class来作为xpath的标签名在这里不同于selenium并且遇到text文本定位的时候使用的是text而不是text()
loc (MobileBy.XPATH, //android.widget.TextView[text首页]) 三、组合定位 使用的是UIAumtomator下的方法因为UiSelector类下的方法都反回了对象本身因此可以连续调用各种方法这种使用方法即组合定位 我们可以连续调用三个方法进行组合
loc (MobileBy.ANDROID_UIAUTOMATOR, new UiSelector().className(android.widget.TextView).text(家装).index(2)) 四、父子定位 调用UiSelector类的childSelector()方法在该方法里面传入子代的元素定位表达式
比如刚刚“家装”的父节点属性如下 那么我们的定位表达式可以通过父子定位来实现
loc (MobileBy.ANDROID_UIAUTOMATOR, new UiSelector().className(android.widget.LinearLayout).childSelector(text(家装))) 五、兄弟定位 同理我们调用fromParent()方法表示定位同级的兄弟元素 已知了“首页”按钮为本元素text属性为“首页”则通过该元素来定位“百货元素”
loc (MobileBy.ANDROID_UIAUTOMATOR, new UiSelector().text(首页).fromParent(text(百货)))
总结
感谢每一个认真阅读我文章的人
作为一位过来人也是希望大家少走一些弯路如果你不想再体验一次学习时找不到资料没人解答问题坚持几天便放弃的感受的话在这里我给大家分享一些自动化测试的学习资源希望能给你前进的路上带来帮助