selenium常用的三种等待方式:sleep(),隐性等待,显性等待

1.强制等待

其一, 乃是最为简单且粗暴的法子, 即强行等待, 借助sleep(x), 迫使闪电侠等待x时长, 是这样进行的。

python 复制代码
from selenium import webdriver
import time
# 会开会话
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
# 强制等待3秒
time.sleep(3)
print(driver.current_url)
driver.quit()

强行处在等待状态, 不论你所用的浏览器究竟有没有完成加载, 程序都必然要等待三秒钟, 待这三秒钟时间一到, 就接着去执行后续的代码, 并不推荐频繁运用这样的强制处于等候状况的方法。

2.隐性等待

第二种隐性等待,(x),整个周期有效,x单位秒

python 复制代码
from selenium import webdriver
# 会开会话
driver = webdriver.Chrome()
# 隐性等待,最长等待30秒
driver.implicitly_wait(30)
driver.get('http://www.baidu.com')
print(driver.current_url)
driver.quit()

设置了一个最长等待时间, 此为隐形等待, 若在规定时间内网页加载 , 那么就执行下一步, 不然的话一直等到时间截止, 随后再执行下一步, 要注意这里存在一个弊端, 即程序会持续等待整个页面加载完, 也便是通常情况下你看到浏览器标签栏那个小圈不再转动的时候, 才会执行接下去的步骤, 然而有时候页面中想要的元素早就加载完毕了, 只是由于个别js之类的玩意儿特别慢, 我依旧得等到页面全部弄好才能执行下一步。

3.显性等待

第三种办法是显性等待, 配合该类的until() 方法, 再配合该类的() 方法, 就能够依据判断条件进行灵活等待了。它主要的意思是: 程序每隔x秒看一眼, 倘若条件成立, 那就执行下一步, 不然便继续等待, 直至超过设置的最长时间,然后抛出。

python 复制代码
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
# 会开会话
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys('selenium')
driver.find_element_by_id('su').click()
# 显性等待
WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH,'//a[text()=" - Web Browser Automation"]')))
driver.find_element_by_xpath('//a[text()=" - Web Browser Automation"]').click()
print(driver.current_url)
driver.quit()

我们进行了隐性等待与显性等待的设置, 于其他操作里, 隐性等待发挥着决定性的作用, 在某些情况中, 显性等待起到主要作用, 然而需要留意的是, 最长的等待时间由两者当中较大的那个决定, 在此例子里是20, 要是隐性等待时间大于显性等待时间, 那么该句代码的最长等待时间等同于隐性等待时间。

相关推荐
降临-max2 天前
Selenium(HTML+JavaScript&DOM+Selenium IDE)
自动化测试·selenium·测试工具·html
2601_962203512 天前
小白爬虫——selenium入门超详细教程
爬虫·selenium·测试工具
weixin_440730504 天前
selenium实战记录-从登陆-首页-进入应用页面测试用例
selenium·测试工具·测试用例
zzzzzzzz'6 天前
浅谈自动化测试2——selenium库中的常用函数
selenium·测试工具·文件上传·导航栏·弹窗·定位元素·查找元素
破土士V7 天前
【软件测试】自动化测试
自动化测试·selenium·web自动化测试·ui自动化
ClouGence7 天前
告别低效脚本!8款更省事的 Selenium 替代工具推荐
selenium·测试
测试19987 天前
UI自动化测试:窗口截图&文件上传实战
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
你我一见如故9 天前
仿QQ音乐桌面客户端——测试报告
python·selenium