selenium 的三种等待方式

一、强制等待

time.sleep(5)强制等待5秒,不管浏览器是否加载完成,影响程序执行效率

二、隐形等待

 implicitly_wait(10) 设置了一个最长等待时间,如果在此时间范围内加载完成,则执行下一步,否则一直等到设置的时间结束后继续进行。

隐性等待对整个driver的周期都起作用,所以只要设置一次即可,不需要和sleep一样到处都设置

三、显性等待

WebDriverWait,xx秒看一眼,如果条件成立了,则执行下一步,否则继续等待,直到超过设置的最长时间

from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Chorme()
driver.get('http://xxx')
time_out = 10 #超时时间
poll_frequency = 1 #步长
WebDriverWait(driver,time_out,poll_frequency).until(EC.presence_of_element_located((css selector,#id)))#表示每1s的时候查询一次元素是否出现,出现了就继续执行,没出现继续等待,超过10s没有出现等待的元素就抛出异常,

猜你喜欢

转载自blog.csdn.net/zuorucsdn/article/details/100706149