美文网首页
appium client迷之一样的API(二)

appium client迷之一样的API(二)

作者: 小蜗牛的成长 | 来源:发表于2018-06-11 20:10 被阅读0次

    查找元素,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(二)

          本文链接:https://www.haomeiwen.com/subject/lraheftx.html