简介:
在实际工作中等待机制可以保证代码的稳定性,从而代码不会因为网速,电脑性能等条件的约束而影响运行结果
等待就是当运行代码时,页面的渲染速度跟不上代码的运行速度时,就需要人为的去限制代码的执行速度
所以,一般在做web自动化时,都要等待页面元素加载完成后,才能执行操作,否则会报找不到元素等各种错误
因此,就要求我们在某些场景下添加上等待时间
最常见的有三种等待方式:
隐式等待:设定一个等待时间,轮询查找元素是否出现 (默认0.5秒) ,若未找到就抛出异常
注意:隐式等待的作用是全局的
self.driver.implicitly_wait(30)
显式等待:即在代码中定义等待一定条件发生后再进一步执行代码。
使用WebDriverWait配合该类的until()和until_not()方法,就能更具判断条件进行等待。
程序每隔一段时间 (默认0.5秒) 进行条件判断,成立则执行下一步;否则继续等待,直到超时
所以,当隐式等待不起作用时,就需要用到显式等待了。以下为示例:
1.引入依赖
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.by import By
WebDriverWait(driver, 10).until(expected_conditions.element_to_be_clickable(By.TAG_NAME, "title"))
强制等待:即在显式等待和隐式等待都不起作用时使用,具体根据实际场景选择使用
time.sleep(3)
__________________________________________________________________________________________
原文:https://www.cnblogs.com/zxycb/p/13736257.html