selenium的三种等待方式(显示等待,隐式等待,强制等待)简单了解与总结

1.强制等待(无条件等待)

使用方法:time.sleep(delay)

delay的单位为,delay设置多少秒页面就会等待多少秒(死等),这个方法很容易让线程挂掉,使程序抛异常,所以要慎用此方法。

使用举例:打开百度,强制等待5秒

#导入强制等待模块
import time
from selenium import webdriver

wd = webdriver.Chrome()
wd.get('https://www.baidu.com')
#强制等待5秒
time.sleep(5)

2.显式等待(有条件等待)

当等待的条件满足后(一般用来判断需要等待的元素是否加载出来),就继续下一步操作。等不到就一直等,如果在规定的时间之内都没找到,那么就跳出Exception。

使用显示等待前需先导入显示等待所需模块和等待条件

#显式等待模块
from selenium.webdriver.support.ui import WebDriverWait
#显式等待条件
from selenium.webdriver.support import expected_conditions as EC

使用举例:

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

wd = webdriver.Chrome()
wd.get('http://www.baidu.com')
#wd是webdriver对象,10是最长等待时间,0.5是每0.5秒去查询对应的元素。until后面跟的等待具体条件,EC是判断条件,检查元素是否存在于页面的 DOM 上。
login_btn=WebDriverWait(wd,10,0.5).until(EC.presence_of_element_located((By.ID, "s-top-loginbtn")))
#点击元素
login_btn.click()

3.隐式等待(无条件等待,在一个时间段内等待)

  • 一次设置,全局生效。不要当作固定等待使用,不要每次需要等待时都写一次隐式等待。
  • 隐式等待设置了一个最长等待时间,在规定时间内网页加载完成(也就是一般情况下你看到浏览器标签栏那个小圈不再转就代表加载完成),则执行下一步,否则一直等到时间结束,然后执行下一步。

如果是只需等待页面中的一个元素加载就用显示等待,等待整个网页加载就用隐式等待。

使用方法:implicitly_wait(delay),delay的单位为秒

使用举例:打开www.qq.com,等待页面加载完成后,点击新闻链接

from selenium import webdriver
from selenium.webdriver.common.by import By
wd = webdriver.Chrome()
wd.get('http://www.qq.com')
wd.implicitly_wait(10)
wd.find_element(By.CSS_SELECTOR,'[href="http://news.qq.com/"]').click()

  • 29
    点赞
  • 213
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Selenium中的显示等待隐式等待是用于在自动化测试中等待页面加载和元素出现的方法。 显示等待需要先导入显示等待所需的模块和等待条件。通过指定最长等待时间和查询元素的频率,直到条件满足或超时后才继续执行后续操作。使用举例中的代码,可以在打开百度页面后,等待10秒钟,每0.5秒检查一次是否存在id为"s-top-loginbtn"的元素,直到该元素出现或超时才继续执行下一步操作。 隐式等待是一次设置,全局生效的等待方法。它会在一个时间段内等待页面加载完成,如果在规定时间内加载完成则执行下一步,否则等待时间结束后执行下一步。隐式等待不应该被频繁地使用,只需要在测试开始前设置一次即可。使用举例中的代码,可以在打开百度页面后,等待5秒钟,直到页面加载完成后才继续执行下一步操作。 所以,显示等待隐式等待都是用于等待页面加载和元素出现的方法,但显示等待是有条件等待,可以指定等待条件和超时时间,而隐式等待是无条件等待,只需设置一个最长等待时间。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [selenium三种等待方式显示等待隐式等待强制等待简单了解总结](https://blog.csdn.net/qq_44728587/article/details/122997412)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值