隐式等待和显示等待

一、背景

在打开应用程序的页面时,总会有加载的时间,有时候在获取页面元素时,页面还没有加载完毕,导致无法定位某些想要获取的元素,此时就需要利用等待方法。

二、隐式等待

  • 方法:driver.implicitly_wait(时间)

    driver.implicitly_wait(5)
    
  • 作用:设置隐式等待后,后续所有的定位元素的方法,都会在这个时间内等待元素的出现,如果出现进行下一步操作,若没有出现则报错。

三、显示等待

  • 方法:WebDriverWait(driver,时间,频率).until(方法)

    from selenium.webdriver.support.wait import WebDriverWait
    WebDriverWait(driver,5).until(XXX)
    
  • 作用:设置显示等待后,会在设定的时间范围内按照一定的频率查找该元素是否出现(默认查找频率时0.5s,可以在方法中进行修改),若元素出现,则进行下一步操作,若没有出现,则报NoSuchElementException错误。

四、使用场景

  • 作用域:显示等待对单个元素有效,方法灵活,扩展性强,但是代码量复杂,后续可以通过封装减少使用的复杂度;隐式等待对全局有效,方法不灵活,代码效率不高,但是使用简单。
  • 方法:显示等待 WebDriverWait 对象的 until 方法,隐式等待 driver 的 implicitly_wait 方法。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容