码迷,mamicode.com
首页 > 移动开发 > 详细

4、通过uiautomatorviewer实现appium元素定位

时间:2018-04-10 19:38:31      阅读:850      评论:0      收藏:0      [点我收藏+]

标签:分享   class   id重复   用户安装   info   access   遍历   ppi   类库   

熟悉selenium自动化的小伙伴应该知道WebDriver 提供了八种元素定位方法:

id
name
class name
tag name
link text
partial link text
xpath
css selector

appium元素定位和WebDriver略微有些差异,具体差异在哪里,下面会具体介绍,在此之前,我们先打开uiautomatorviewer.bat(在sdk/tools路径下)

技术分享图片

 

appium元素定位一:通过 Id 定位

 技术分享图片

如上图所示resource-id 就是我们要找的 Id 了

使用方法:

driver.findElement(By.id("com.android.calculator2:id/digit_9"))

 

appium元素定位二:通过Class Name  定位

使用 ClassName 一般获得的 view 都不止一个, 所以应该需要遍历一遍得到的 views, 然后缩小搜索条件来获得目标控件。 不推荐使用
技术分享图片

driver.findElement(By.ClassName("android.widget.Button"));

 

appium元素定位三:通过XPath   定位

找父标签的class

技术分享图片

 

driver.findElement(By.xpath("android.widget.FrameLayout/android.support.v4.view.ViewPager/android.widget.Button"))

 

appium元素定位四:通过Accessibility ID  定位

这个方法属于 Appium 扩展的定位方法。Accessibility ID 在 Android 上面就等同于 contentDescription。 这个属性是方便一些生理功能有缺陷的
人使用应用程序的。 比如我们有一个 ImageView 里面放置一张颜色复杂的图片, 可能一些色弱色盲的人,分不清这张图片中画的是什么东西。 如果用户安装了辅助浏览工具比如 TalkBack, TalkBack 就会大声朗
读出用户目前正在浏览的内容。 TextView 控件 TalkBack 可以直接读出里面的内容, 但是 ImageView,TalkBack 就只能去读 contentDescription 的值, 告诉用户这个图片到底是什么。
鉴于这是一个隐藏属性, 而 Android 上用于查找控件的各种属性可能有所缺失或者有重复(比如 id重复, 比如一个 list 下面的所有项可能都是叫做“id/text1”) , 所以最佳的办法就是跟开发团队沟通好每个
view 都赋予一个唯一的 contentDescription。其实, 我们的核心是要找到元素的 contentDescription 属性。 它就是元素的 content-desc 。 

技术分享图片

driver.findElementByAccessibilityId("加").click();

 


appium元素定位五:通过android uiautomator   定位

AndroidUIAutomator是一个强有力的元素定位方式,它是通过Android UIAutomator类库去找元素,一个元素的任意属性都可以通过 android uiautomator 方法来进行定位, 但要保证这种定位方式的唯一性。 

技术分享图片

 

driver.findElementByAndroidUIAutomator("new UiSelector().text(\"+\")").click(); 

 

4、通过uiautomatorviewer实现appium元素定位

标签:分享   class   id重复   用户安装   info   access   遍历   ppi   类库   

原文地址:https://www.cnblogs.com/suim1218/p/8781561.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!