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“

 

posted @ 2019-11-03 23:13  小贝书屋  阅读(1253)  评论(0编辑  收藏  举报