UI自动化-----三大等待

隐式等待----implicitly_wait()

隐式等待:隐性等待设置了一个时间,在一段时间内网页是否加载完成,如果完成了,就进行下一步;在设置的时间内没有加载完成,则会报超时加载
注:隐性等待的设置时全局性的,在开头设置过之后,整个的程序运行过程中都会有效,都会等待页面加载完成;不需要每次设置一遍。

在使用隐式等待的时候,实际上浏览器会在你自己设定的时间内不断刷新页面去寻找我们需要的元素

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait


driver = webdriver.Chrome()
driver.implicity_wait(10)# 等待十秒加载不出来就会抛出异常,10秒内加载出来正常返回

driver.get('http://www.baidu.com')

默认参数的单位为秒。同时,这并非一个固定的等待时间,并不影响脚本的执行速度。

显示等待----WebDriverWait类

显示等待是表明某个条件成立才执行获取元素的才做、也可以等待的时候指定一个最大的时间,如果超过这个时间那么就会抛出一个异常(exceptions.TimeoutException)。

即设置一个等待条件,和一个最长等待时间,在等待时间内条件是否满足,满足继续下一步,不满足会继续等待,超过时间就会抛出异常

WebDriverWait一般有until和until_not方法配合使用
until(method,message)
until_not(method ,message)

语法:

WebDriverWait(driver,等待时长,轮循周期).until()/until_not()

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver .get('https://www.baidu.com/')

wait = WebDriverWait(driver , 10)
logo= wait.until(EC.presence_of_element_located((By.ID, 'su')))
print(logo)

与隐式等待相比,显示等待多了一个指定元素条件超时时间

强制等待----time.sleep()方法

固定等待

import time

time.sleep(5)#强制等待5秒

(非作者允许,严禁转载)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值