美文网首页
三种等待——保证脚本稳定的重要手段

三种等待——保证脚本稳定的重要手段

作者: 无谓着 | 来源:发表于2020-11-11 23:28 被阅读0次

    显示等待(WebDriverWait().until())
    说明:显示等待是单独针对某个元素,设置一个等待时间如10秒,每隔0.5秒检查一次是否出现,如果在10秒之前任何时候出现,则继续向下,超过5秒尚未出现则抛异常。显示等待与隐式等待相对,显示等待必须在每个需要等待的元素前面进行声明。

    使用场景:当打开一个新页面,执行第一个元素操作的时候,当元素有加载过程的时候,就需要加上显示等待

    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from appium.webdriver.common.mobileby import MobileBy
    WebDriverWait(driver,10,0.5).until(EC.presence_of_element_located(MobileBy.ACCESSIBILITY_ID,'')) #等待某一个元素出现才执行下面操作
    
    

    隐式等待(driver.implicitly_wait())
    说明:隐式等待是全局的是针对所有元素,设置等待时间如10秒,如果10秒内出现,则继续向下,否则抛异常。可以理解为在10秒以内,不停刷新看元素是否加载出来。

    使用场景:隐式等待只需要声明一次,一般在打开浏览器后进行声明。声明之后对整个drvier的生命周期都有效,后面不用重复声明。隐式等待存在一个问题,那就是程序会一直等待整个页面加载完成,也就是一般情况下你看到浏览器标签栏那个小圈不再转,才会执行下一步,但有时候页面想要的元素早就在加载完成了,但是因为个别js之类的东西特别慢,仍得等到页面全部完成才能执行下一步。

    driver.implicitly_wait(10)
    

    强制等待(sleep)
    sleep(3)固定等待3s通常不会用到

    相关文章

      网友评论

          本文标题:三种等待——保证脚本稳定的重要手段

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