Appium 元素查找(一)
一、概述
在appium中,如果想对元素进行相关操作,如点击、移动、滑动等,首先需要找到这些元素。在Android环境下,我们可以通过Android SDK自带的 uiautomatorviewer.bat 工具进行元素查找。通过这个工具,我们可以获取到当前连接到电脑的移动设备的一个快照,然后,就可以看到当前页面的控件的属性以及层级关系,比如我们可以看到resources-id,class,text等属性。在appium中,我们可以通过这些 id,class或者 class和text的属性组合定位到这些元素。
二、uiautomatorviewer 快照图示(当前手机屏幕的一个截图)
三、appium元素定位
3.1通过ID进行定位:
WebElement element = driver.findElementById("com.example.jingbin.cloudreader:id/tv_jump");
List<WebElement> elements = driver.findElementsById("cn.etouch.ecalendar:id/img_edit");
3.2 通过class定位:
List<WebElement> elements = driver.findElementsByClassName("android.widget.ImageButton");
3.3 ,通过xpath进行定位
xpath是一种特殊的定位方式,即使用元素的属性组合来定位元素,例如 class和text的组合。使用属性组合定位的原因是单一属性无法唯一的定位到一个元素。
WebElement elementA = driver.findElementByXPath("//android.widget.TextView[@text='全部']")
WebElement elementB = driver.findElementByXPath("//android.widget.ImageButton[@content-desc='转到上一层级']")
四、总结
通过上述元素定位方式,我们可以查找到大部分的元素,对于有些布局比较复杂的页面,我们需要通过控件层级之间的关系来进行定位,这些会在后续的博客中记录下来。