selenium的三种等待方式
Posted bug-king
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium的三种等待方式相关的知识,希望对你有一定的参考价值。
一、强制等待:
time.sleep(3)---->强制等待3秒
二、隐式等待:
driver.implicitly_wait(20)
含义:设置的这个20秒表示最大等待时长,它等待到什么情况结束呢?--->它就相当于我们在浏览器中,加载一个页面,看到页面不在转圈圈,全部加载完成之后,才算等待结束。
全部加载完成在浏览器其实包含以下内容:
1.页面的html从服务器返回。
2.页面的所有静态资源,js,css,img,广告,全部从服务器获取,在加载到页面中。
隐式等待的弊端:
一般我们在写程序的时候,这里使用等待,最主要的目的就是等待我们想要的数据能够出来就可以了。用隐式等待他是等到所有资源都加载的完成的,我们花了一部分时间,去等待我们不想要的资源,所以隐式等待并不常用。
三、显式等待:会设置一个条件,当页面满足该条件时,等待完成!
调用模块
from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdrver.common.by import By
创建一个等待对象
wait=WebDriverWait(driver"""等待作用的那个driver""",20"""最大等待时长,超过时长会报timeout异常""") wait.until( EC.presence_of_element_located( By.XPATH"""定位器的选择器名称。By.ID,By.CSS_SELECTOR""",‘//div[@class="recreit-list"]‘ """定位器""",locator))
presence_of_element_located:等待条件。
以上是关于selenium的三种等待方式的主要内容,如果未能解决你的问题,请参考以下文章