Appium 关于 WebDriverWait 中使用 id 定位和使用 android_uiautomator 对.is_displayed () 的一点小疑问

微风随意 · 2018年01月22日 · 最后由 微风随意 回复于 2018年01月25日 · 1143 次阅读

我在使用 WebDriverWait 来等待页面当中的一个元素出现的时候,遇到了一个问题,就是同样的一个元素,我用 id 来定位就无法找到,但是我用 android_uiautomator 来定位就可以定位到,代码如下:

try:
    #使用这个就直接就跳到except了,没有找到
    WebDriverWait(driver, 5).until(lambda driver: driver.find_element_by_id(
         "iHealthMyVitals.V2:id / device_guide_po3_3_serching").is_displayed())
    #使用这个就可以找到
    # WebDriverWait(driver, 5).until(lambda driver: driver.find_element_by_android_uiautomator(
    #     "text(\"Searching...\")").is_displayed())
    # 判断是否有扫描列表出现
    pass
except TimeoutException:
    print u"PO_019:failed,等待扫描页面没有显示" 
    driver.quit()

可以看见我代码注释的那一段,同一个元素用 android_uiautomator 就可以 pass,用 id 就直接到找不到,最后就只能抛出异常了,这个是什么原因呢?很是不解,有那位大神能指点一二。

共收到 3 条回复 时间 点赞

额,难道没有人?

仅楼主可见
槽神 回复

O__O "…,没有

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册