webdriver 等待页面加载完成_selenium(十)脚本中的延时等待处理

       首先我们先聊一下问什么要添加延时等待,大家都知道,selenium自动化测试是基于UI页面的自动化测试,所有定位操作的元素必须要等前端页面加载完成才可以定位成功,当页面需要渲染的内容更多,或网络网速慢的时候,等待时间或许更长,否则就会抛异常(“ ElementNotVisibleException ”),所以,添加延时等待的目的是为了让脚本运行的更稳定。

    在selenium中常用的延时等待主要有三种方法。

  • 强制等待:time模块下的sleep()方法

51283b52748bd3d9ee381c5679edc799.png

特点是只能够针对当前操作。所以这种单步骤操作,无法很好的控制脚本的执行,并且,如果每步需要添加机会出现过多的重复代码。且休眠时间超过5秒的话,可能出现浏览器回话连接断开的情况。

  • 隐式等待:implicitly_wait()方法,属于webdriver驱动器对象下的方法,针对一次回话所有的操作,相当于一个全局的等待,只需要声明一次。(通常在设计脚本的时候会应用于setup方法)

4d8456d6853ab3ca744712bf4db103a9.png

  •  显式等待:WebdriverWait(驱动对象(浏览器句柄),等待时间)

Webdriverwait有两种导入方式,分别为:

from selenium.webdriver.support.wait import webdriverwait

from selenium.webdriver.support.ui import webdriverwait

使用webdriverwait只能与until和not until两个方法进行使用;until 和 not until中传入的参数可以是

  1. lambda匿名函数

f880b88588d80d751fe53b6c2f00454e.png

  b.预置条件expected_conditions

15b2eb2afe86d5126aae4f72ad481d03.png

如果until或者not until传入的方法定位元素查找到则会反应对应的对象,如果未找到则会抛出TimeoutException异常。

EC预置条件模块具有许多类型的判断:

8efe7065cd9666db975c8f5f39877f86.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值