appium client迷之一样的API(二)

查找元素,appium除了提供简单的id、xpath、className,同时也提供了 find_element_by_android_uiautomator() 方法供用户使用uiautomator 或者uiautomator2的UiSelector类,这里,我使用的uiautomator2 driver

目标

着重说明 find_element_by_android_uiautomator() 方法

原因

    appium 从1.5.*的某个版本不直接支持text方式的查找,即find_element_by_name() ,为了能使用text定位或者作为判断条件,除了使用xpath,则可使用 find_element_by_android_uiautomator()
    另外appium本身提供的定位方式没uiautomator2丰富,如查找兄弟元素、模糊匹配等

举例

uiautomator1/2中
    UiSelector.fromParent或UiObject.getFromParent方法通过儿子找父亲,父亲找其他儿子
       该方法是通过将元素对象在另一个父级元素对象中搜索,来达到局部搜索对象 的目的。通过子元素找到父元素,再通过父元素找到另一个子元素 例:

#uiautomator
UiObject uio=new UiObject(new UiSelector().text("子1").fromParent(new UiSelector().className("子2"))); 
#appium 
ele=driver.find_element_by_android_uiautomator(new UiSelector().text("子1").fromParent(new UiSelector().className("子2")))#这个地方可以不填写前面的new UiSelector()

   通过UiSelector.childSelector或UiObject.getChild方法
      该方法就比上述方法简单,直接知道父元素,通过父元素找子元素 例:

#uiautomator
UiObject parentView = new UiObject(new UiSelector().className("父")); 
UiObject save = parentView.getChild(new UiSelector().text("子")); 
#appium 
ele=driver.find_element_by_android_uiautomator(new UiSelector().className("父").getChild(new UiSelector().text("子")))

uiautomator的其他方法可参考https://blog.csdn.net/maocaowu_csdn/article/details/50749306

你可能感兴趣的:(appium client迷之一样的API(二))