我在使用 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 就直接到找不到,最后就只能抛出异常了,这个是什么原因呢?很是不解,有那位大神能指点一二。


↙↙↙阅读原文可查看相关链接,并与作者交流