显式等待 - 隐式等待 - 强制等待

简介

  在实际工作中等待机制可以保证代码的稳定性,从而代码不会因为网速,电脑性能等条件的约束而影响运行结果

  等待就是当运行代码时,页面的渲染速度跟不上代码的运行速度时,就需要人为的去限制代码的执行速度

  所以,一般在做web自动化时,都要等待页面元素加载完成后,才能执行操作,否则会报找不到元素等各种错误

  因此,就要求我们在某些场景下添加上等待时间

最常见的有三种等待方式

  隐式等待:设定一个等待时间,轮询查找元素是否出现 (默认0.5秒) ,若未找到就抛出异常

  注意:隐式等待的作用是全局的

  显式等待:即在代码中定义等待一定条件发生后再进一步执行代码。

  使用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"))

  强制等待:即在显式等待和隐式等待都不起作用时使用,具体根据实际场景选择使用

________________________________________________________________________________________________________

posted @ 2020-09-26 19:15  九霄风云  Views(675)  Comments(0)    收藏  举报