美文网首页
等待使用

等待使用

作者: 偶然路过的靓仔_胡阳 | 来源:发表于2019-08-01 22:06 被阅读0次

为什么要使用等待?

现在前端技术已经非常厉害了,还有多种加载的方式方法,可能导致我们的脚本在跑的时候,元素还没有加载出来,就直接报错了,所以我们使用等待技术

等待的实现方式:

1.sleep休眠模式,强制等待

2.WebDriverWait显式等待

3.implicitly_wait隐式等待

1.sleep休眠模式,强制等待

在调试中我们经常用到,我们希望在某个位置时,停留时间,会使用sleep

sleep()是time模块提供的,可以from time import sleep或者先import time 然后在代码中time.sleep(),其中括号中填入秒数

示例代码:

2.WebDriWait显式等待

是由webdriver提供的等待方法,在设置的时间内,默认每隔一段时间检查一下当前页面元素在不在

显式等待是明确等待某个条件成立时才会继续执行,否则在最大时长里面抛出异常TimeOutException

用到显式等待的话

需要导入三个库:

form selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions

示例代码:

WebDriverWait(driver,timeout,poll_frequency).until(EC.presence_of_element_located())
代码讲解:

-WebDriverWait:webdriver提供的显式等待方法

-driver:浏览器 驱动

-timeout:最大等待时间

-poll_frequency:每隔多少秒检查一次元素

-until:WebDriverWait配合使用的方法,里面的查找作为参数,返回值是True

-no_until:返回的则是False

-EC:expected_conditions的重命名

-presence_of_element_located:判断元素是否存在

3.implicitly_wait隐式等待

比较常用的一种等待,以秒为单位,并不会影响代码的执行速度,等到代码执行到这一行时,如果没有找到元素则会自动停留多少秒等待元素的加载,如果超过这个时间则会抛出NoSuchElementExcept异常

捕获异常抛出的时候需要导入NoSuchElementExcept异常

from selenium.common.exceptions import NoSuchElementExcept

示例代码:

相关文章

网友评论

      本文标题:等待使用

      本文链接:https://www.haomeiwen.com/subject/csrhdctx.html