永兴集团网站,微信网页手机登录入口官网,网站备案最新备案号,wordpress收费下载模板目录 强制等待:sleep()
隐式等待:implicitly_wait()
显示等待:WebDriverWait()
与until()或者until_not()方法结合使用
WebDriverWait与expected_conditions结合使用
显示等待,自定义等待条件 强制等待:sleep()
import time
sleep(5) #等待5秒
设置固定休眠时间#x…目录 强制等待:sleep()
隐式等待:implicitly_wait()
显示等待:WebDriverWait()
与until()或者until_not()方法结合使用
WebDriverWait与expected_conditions结合使用
显示等待,自定义等待条件 强制等待:sleep()
import time
sleep(5) #等待5秒
设置固定休眠时间单位为秒。 由python的time包提供, 导入 time 包后就可以使用。 缺点不智能使用太多的sleep会影响脚本运行速度。
隐式等待:implicitly_wait()
driver.implicitly_wait(10) #隐式等待10秒
由webdriver提供的方法一旦设置这个隐式等待会在WebDriver对象实例的整个生命周期起作用它不针对某一个元素是全局元素等待即在定位元素时需要等待页面全部元素加载完成才会执行下一个语句。如果超出了设置时间的则抛出异常。
缺点当页面某些js无法加载但是想找的元素已经出来了它还是会继续等待直到页面加载完成浏览器标签左上角圈圈不再转才会执行下一句。某些情况下会影响脚本执行速度。
显示等待:WebDriverWait()
WebDriverWait(driver,timeout,poll_frequency0.5,ignored_exceptionsNone)
需要通过from selenium.webdriver.support.wait import WebDriverWait导入模块
driver浏览器驱动timeout最长超时时间默认以秒为单位poll_frequency检测的间隔步长默认为0.5signored_exceptions超时后的抛出的异常信息默认抛出NoSuchElementExeception异常。
与until()或者until_not()方法结合使用
WebDriverWait(driver,10).until(methodmessage)
#调用该方法提供的驱动程序作为参数直到返回值为TrueWebDriverWait(driver,10).until_not(methodmessage)
#调用该方法提供的驱动程序作为参数直到返回值为False
在设置时间10s内等待后面的条件发生。如果超过设置时间未发生则抛出异常。在等待期间每隔一定时间默认0.5秒)调用until或until_not里的方法直到它返回True或False.
WebDriverWait与expected_conditions结合使用
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import Bywait WebDriverWait(driver,10,0.5)
element waite.until(EC.presence_of_element_located((By.ID,kw),message)
# 此处注意如果省略message“”则By.ID外面是两层()
expected_conditions类提供的预期条件判断的方法 方法 说明 title_is 判断当前页面的 title 是否完全等于预期字符串返回布尔值 title_contains 判断当前页面的 title 是否包含预期字符串返回布尔值 presence_of_element_located 判断某个元素是否被加到了 dom 树里并不代表该元素一定可见 visibility_of_element_located 判断元素是否可见可见代表元素非隐藏并且元素宽和高都不等于 0 visibility_of 同上一方法只是上一方法参数为locator这个方法参数是 定位后的元素 presence_of_all_elements_located 判断是否至少有 1 个元素存在于 dom 树中。举例如果页面上有 n 个元素的 class 都是’wp’那么只要有 1 个元素存在这个方法就返回 True text_to_be_present_in_element 判断某个元素中的 text 是否 包含 了预期的字符串 text_to_be_present_in_element_value 判断某个元素中的 value 属性是否包含 了预期的字符串 frame_to_be_available_and_switch_to_it 判断该 frame 是否可以 switch进去如果可以的话返回 True 并且 switch 进去否则返回 False invisibility_of_element_located 判断某个元素中是否不存在于dom树或不可见 element_to_be_clickable 判断某个元素中是否可见并且可点击 staleness_of 等某个元素从 dom 树中移除注意这个方法也是返回 True或 False element_to_be_selected 判断某个元素是否被选中了,一般用在下拉列表 element_selection_state_to_be 判断某个元素的选中状态是否符合预期 element_located_selection_state_to_be 跟上面的方法作用一样只是上面的方法传入定位到的 element而这个方法传入 locator alert_is_present 判断页面上是否存在 alert
显示等待,自定义等待条件
#设置等待
wait WebDriverWait(driver,10,0.5)
#使用匿名函数
wait.until(lambda diver:driver.find_element_by_id(kw))