selenium设置元素等待

由于脚本运行速度过快,页面上有些元素未刷新出来,导致定位元素失败。为解决这一问题,我们需要在脚本中加入元素等待。webdriver提供了两种等待方式:显式等待和隐身等待。另外还有一种sleep休眠法。

1.显示等待

显示等待是webdriver等待某个条件成立时继续执行,否则在达到最大时长的时候抛出TimeoutException

使用前需要导入相应的包:

from selenium.webdriver.support.ui import WebDriverWait

WebDriverWait类由webdriver提供的等待方法,在设置的时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超出设置的时间为检测出元素,则抛出异常。

语法:WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)

driver:浏览器驱动

timeout:超时时间,单位为秒

poll_frequency:检测的间隔时间,默认为0.5s

ignored_exceptions:超时后抛得异常,默认情况下抛NoSuchElementException.

WebDriverWait()一般由until()或until_not()配合使用。未完待续

2.隐式等待

隐式等待是通过一定时长来等待页面上某个元素的加载,webdriver提供了implicitly_wait()方法来实现隐式等待,默认为0.超时抛出NoSuchElementException.

语法:driver.implicitly_wait(),时间为秒。假设等待时间为8秒,这8秒不是一个固定时间,不会影响脚本的执行效率,它不针对页面上的某个元素进行等待。当脚本执行到某个元素定位时,如果元素可以定位到,则继续执行,如果定位不到,则会轮询进行定位,假设在3秒时,元素定位到,则继续执行。如果超过8秒,则抛出异常。

3.sleep休眠法

使用sleep()方法时需要先导入该方法。该方法是一个固定时间等待的方法,脚本会固定停止一段时间,然后再继续执行

from time import sleep

语法:sleep(),单位为秒


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值