selenium等待三种等待

selenium分三种等待方式,分别是sleep,implicitly_wait,WebDriverWait三种

1.显性等待

意思是:隔一段时间timeout看一次,条件成立,继续运行,否则抛出TimeOutException异常

备注:用一次写一次

WebDriverWait(self,driver,timeout,poll_frequency=POLL_FREQUENCY,ignored_exceptions=None)

# coding=utf-8
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait

driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
WebDriverWait(driver,10).until(lambda driver : driver.find_element_by_id("kw")).send_keys("python")

 2.强制等待

这是Python中自带的,不管元素是否加载完成后,sleep(x),继续执行

# coding=utf-8
from selenium import webdriver
from time import sleep

driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
sleep(2)  # 强制等待2s
driver.find_element_by_id("kw").send_keys("python")

 3.隐性等待

implicitly_wait(x)   等待x秒,不管有没有加载,继续执行

备注:全局的,只需要写一次

# coding=utf-8
from selenium import webdriver

driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.implicitly(30) # 隐性时间最长为30s
driver.find_element_by_id("kw").send_keys("python")

猜你喜欢

转载自www.cnblogs.com/ds-123/p/11751247.html