selenium之三种等待方式

这篇具有很好参考价值的文章主要介绍了selenium之三种等待方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1:强制等待

无条件等待,必须等待设置的时间后,再执行

使用方法:导入time库,time.sleep(sec)    

sec表示多少秒,sec设置多少秒页面就会等待多少秒(死等),时间一到,继续执行下面的代码。在调试的时候很有用,但这个方法很容易让线程挂掉,使程序抛异常。

例:使用百度搜索,输入关键字后等待3秒再执行点击操作

from selenium import webdriver
import time

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

driver.find_element('id', 'kw').send_keys('selenium')
# 强制等待3秒
time.sleep(3)
driver.find_element('id', 'su').click()

2:显示等待

有条件的等待,可以理解为:程序每隔一秒都去看一眼,等待的元素是否出现,当等待的条件满足后(一般用来判断需要等待的元素是否加载出来),就继续下一步。等不到就一直等,直到超过规定的最长等待时间,在规定的时间内都没找到元素,就抛出TimeoutException。

使用方法:需要先导入WebDriverWait、expected_conditions

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ES
from selenium.webdriver.common.by import By

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

# 三种方式都可以
#driver是webdriver对象,10是最长等待时间,0.5是每0.5秒去查询对应的元素。until后面跟的等待具体条件,EC是判断条件,检查元素是否存在于页面的 DOM 上。
ele = WebDriverWait(driver, 10, 0.5).until(ES.presence_of_element_located(('id', 'kw')))

# ele = WebDriverWait(driver, 10, 0.5).until(ES.presence_of_element_located((By.ID, 'kw')))

# WebDriverWait(driver, 10, 0.5).until(lambda driver:driver.find_element('id', 'kw'))

ele.send_keys('test')

3:隐式等待

无条件等待,在一个时间段内等待

一次设置,全局生效。不要当做固定等待使用,不要每次等待时都写一次隐式等待。

隐式等待设置了一个最长等待时间,在规定时间内网页加载完成(也就是一般情况下看到浏览器标签栏那个小圈不再转就代表加载完成),则执行下一步,否则一直等到时间结束,然后执行下一步。

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

使用方法:implicitly_wait(sec),sec表示多少秒

例:打开http://www.taobao.com,等待页面加载完成后,在输入框中输入“毛绒玩具”文章来源地址https://www.toymoban.com/news/detail-712876.html

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('http://www.taobao.com')

# 隐式等待10秒
driver.implicitly_wait(10)

ele = driver.find_element('id', 'q')
ele.send_keys('毛绒玩具')

到了这里,关于selenium之三种等待方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自动化测试系列-Selenium三种等待详解

    第一种也是最简单粗暴的一种办法就是强制等待sleep(time),强制让程序等time秒时间,不管程序能不能跟上速度,还是已经提前到了,都必须等time时长。 如下代码案例所示: 这种叫强制等待,不管你浏览器是否加载完了,程序都得等待5秒,5秒一到,继续执行下面的代码,作为

    2024年04月10日
    浏览(79)
  • selenium中的三种等待方式以及显示等待和隐式等待区别

    selenium中一般分为三种等待方式:显示等待、隐式等待、sleep强制等待 1、显示等待(有条件) 程序提前指定等待条件和等待时间,在查找元素时,判断规定时间内是否满足条件,满足则继续执行,不满足或超出时间则抛出异常 2、隐式等待(无条件) 程序提前指定等待时间,在查

    2024年02月12日
    浏览(40)
  • Selenium自动化测试:详解显示等待和条件类

    了解Selenium中的显示等待和条件类,以确保UI自动化测试用例的稳定性。掌握各种等待条件,如元素出现、可见、可点击等,以及实现原理。

    2024年02月03日
    浏览(46)
  • Selenium自动化教程:延时等待的3种方式!

    我们经常会碰到用selenium操作页面上某个元素的时候,需要等待页面加载完成后,才能操作。否则页面上的元素不存在,会抛出异常。或者碰到AJAX异步加载,我们需要等待元素加载完成后,才能操作。在进行UI自动化测试时,需要等元素加载完成,才能对元素进行操作,不然

    2024年01月24日
    浏览(51)
  • web自动化之基础内容二(全网最详细,selenium获取断言信息,显示等待和隐式等待,xpath高级语法)-第二天

    获取到的断言信息就是实际结果 预期结果使我们确定的,直接写在代码中的 而实际结果是无法确定的,所以需要用一些方法去获取 代码示例 场景:当我们加载页面的时候,一些元素是需要时间的 就有可能发生,代码执行到了,而元素没有被加载出来 此时就会出现找不到元

    2024年01月17日
    浏览(45)
  • 【selenium】三种等待方式

    time模块中的sleep()方法,程序执行到此代码时强制等待一段时间。 time.sleep(time),传入具体的等待时间time 可以控制等待的具体时间,一般在调试代码时使用 无法准确把握需要等待的时间 如果设置时间过短,操作还未完成,等待时间已到,会导致测试用例执行报错,影响测试

    2024年02月03日
    浏览(41)
  • Selenium:三种等待方式

    目录 一、显示等待 二、隐式等待 三、强制等待 UI自动化测试,大多都是通过定位页面元素来模拟实际的生产场景操作。但在编写自动化测试脚本中,经常出现元素定位不到的情况,究其原因,无非两种情况:1、有frame;2、没有设置等待。 因为代码运行速度和浏览器加载渲

    2024年02月03日
    浏览(47)
  • selenium的三种等待方式

    设置固定休眠时间,单位为秒。 由python的time包提供, 导入 time 包后就可以使用。 缺点:不智能,使用太多的sleep会影响脚本运行速度。 使用方法:time.sleep(delay) 使用举例:打开百度,强制等待5秒 (无条件等待,在一个时间段内等待) 一次设置,全局生效。 不要当作固定等待

    2023年04月13日
    浏览(48)
  • webdriver 的三种等待方式(强制等待、隐式等待、显示等待)

    在自动化测试脚本的运行过程中,webdriver操作浏览器的时候,对于元素的定位是有一定的超时时间,大致应该在1-3秒的样子,如果这个时间内仍然定位不到元素,就会抛出异常,中止脚本执行。我们可以通过在脚本中设置等待的方式来避免由于网络延迟或浏览器卡顿导致的偶

    2024年02月13日
    浏览(37)
  • selenium UI自动化中文件上传的两种方式

    文件上传是自动化中很常见的一个功能,那么对于文件上传你又有多少了解呢?请往下看 1、被测产品中文件上传的功能非常普遍,一般情况下需要将准备好的文件放在预定的路径下,然后在自动化测试的脚本中,去预置的路径下获取文件即可。 2、selenium UI自动化中文件上传

    2024年02月13日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包