web自动化测试第16步:WebDriverWait元素等待和全局设置

本文详细介绍了在web自动化测试中如何利用WebDriverWait进行元素等待,包括全局设置超时时间、WebDriverWait的使用方法以及expected_conditions库中的各种判断条件,以解决页面元素加载不完全导致的定位问题。
摘要由CSDN通过智能技术生成

由于现在部分web应用加载方式的选择,页面会需要一定时间逐渐加载完毕,也就是说有的页面元素先加载出来,有的元素后加载出来。如果直接定位所查找的元素的话,可能会由于此元素尚未加载完毕找不到元素从而报错,由于网络不稳定这种情况出现的几率会大很多,一般解决方法的话,time.sleep()函数可以避免一些这种状况,但是缺少了灵活性。在selenium中有关于等待的方法可以比较灵活的解决这个问题,这次主要讲解selenium中元素等待WebDriverWait的使用,以及全局的设置。

一、关于全局设置超时时间

三个全局设置时间的方法中,设置的时间单位为秒,例如implicitly_wait(30),意思是超过30秒没有定位到一个元素,程序就会报错抛出异常,期间会一直轮询查找定位元素。

设置全局元素查找的超时时间

implicitly_wait(time_to_wait)
  • time_to_wait:超时时间(秒)

设置全局js异步脚本超时时间

set_script_timeout(time_to_wait)
  • time_to_wait:超时时间(秒)

设置全局页面载入超时时间

set_page_load_timeout(time_to_wait)
  • time_to_wait:超时时间(秒)

二、关于WebDriverWait的使用以及方法介绍(显示等待)

个人理解:WebDriverWait可以当做元素等待,灵活的设置查找元素时的判断条件,同时由于方法中包含了大量webdriver自带的判断方法,只返回True和False,所以个人认为也可以灵活的当做断言来使用。

2.1基础格式(webDriverWait+until+(判断条件)):

这个格式的结构有点像语言中主谓宾的结构,实例的意思是,程序每0.5秒检查,是否满足:标题包含“百度一下”这个条件,检查是否满足条件的最长时间为:15秒,超过15秒仍未满足条件则抛出异常

WebDriverWait(driver, 15, 0.5).until(expected_conditions.title_contains("百度一下"))

2.2导入库

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值