selenium等待方式之显示等待

Posted becks

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium等待方式之显示等待相关的知识,希望对你有一定的参考价值。

有时候,页面元素并未及时加载出来导致后面的步骤无法执行

这里就需要在加载前添加等待时间,让目标元素有足够的时间加载出来

第一种方法:使用time.sleep()

这种方法过于强制,无论元素是否加载出来都要等指定的时间,导致脚本执行效率不高

 

第二种方法:隐式等待implicitly_wait()

这种方法比较全局性,意味着一旦启用,全局有效,所有步骤都需要等待所有页面元素加载完后才会继续执行后续脚本

 

第三种:显示等待WebDriverWait

通俗的说法,指定的某元素,等待加载出来后,再执行后续操作。

这种等待方式可利用参数循环查询元素,超时即抛错

比如:

from selenium.webdriver.support.wait import WebDriverWait

browser = webdriver.Chrome()

WebDriverWait(browser,30,0.2).until(lambda x:x.find_element_by_xpath("//span[contains(text(),‘保存到网盘‘)]"))

 

超时时间30秒,每0.2秒查询一次,当能查询到xpath("//span[contains(text(),‘保存到网盘‘)]"时,执行后面的操作,否则直到达到超时时间后,程序异常出错

使用这种等待方式,需要import库

”from selenium.webdriver.support.wait import WebDriverWait“

 

以上是关于selenium等待方式之显示等待的主要内容,如果未能解决你的问题,请参考以下文章

selenium常用操作之等待操作

Selenium 三种等待方式(强制等待、隐式等待、显示等待)

Python +selenium之设置元素等待

selenium 的隐式等待和显示等待

selenium显示等待和隐式等待

selenium中的三种等待方式(显示等待WebDriverWait()隐式等待implicitly()强制等待sleep())---基于python