Selenium自动化教程:延时等待的3种方式!

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

Selenium自动化教程:延时等待的3种方式!,软件测试,经验分享,自动化测试,selenium,测试工具,压力测试,安全性测试,自动化测试,性能测试,接口测试

我们经常会碰到用selenium操作页面上某个元素的时候,需要等待页面加载完成后,才能操作。否则页面上的元素不存在,会抛出异常。或者碰到AJAX异步加载,我们需要等待元素加载完成后,才能操作。在进行UI自动化测试时,需要等元素加载完成,才能对元素进行操作,不然找不到元素会报错。延时等待的三种方式:强制等待、隐式等待和显式等待。

1.强制等待:在执行get方法之后执行,强制等待是通过time.sleep()方法实现的一种延时等待,它会暂停程序的执行指定的时间。大家应该都不会陌生,sleep就是强制等待。硬性等待也称为强制等待、线程休眠。强制等待,顾名思义就是强迫你等待呗,你等也得等不等也得等,没有商量。不管页面是否加载完,强制指定等待时间后继续执行。由于此方法较为死板,不够灵活,会导致脚本运行时间变长,故建议尽量少用。

import time  time.sleep(5)  # 暂停程序执行5秒

2.隐式等待:隐式等待是一种全局等待,它会为页面上的所有元素设置一个最大等待时间。如果在指定的时间内页面元素加载完成,则执行后续操作;如果超过时间限制,则抛出超时异常。可以通过webdriver.implicitly_wait()方法设置隐式等待时间。

from selenium import webdriver      #导包driver = webdriver.Chrome()         #获取浏览器驱动对象driver.implicitly_wait(20)          #隐示等待,传入等待时间
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

Selenium自动化教程:延时等待的3种方式!,软件测试,经验分享,自动化测试,selenium,测试工具,压力测试,安全性测试,自动化测试,性能测试,接口测试

3.显式等待:显式等待是一种更灵活的等待方式,它允许你指定一个条件,当该条件满足时才执行后续操作。可以通过WebDriverWait类和expected_conditions模块来设置显式等待。​​​​​​​

import timefrom selenium import webdriverfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import By
driver = webdriver.Chrome()driver.get('https://www.baidu.com')# 设置等待时间10swait = WebDriverWait(driver, 10)# 设置判断条件:等待id='kw'的元素加载完成input_element = wait.until(EC.presence_of_element_located((By.ID, 'kw')))
input_element.send_keys('李白')time.sleep(2)driver.quit()

3.1.WebDriverWait参数的使用说明:​​​​​​​

1.WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)driver: 浏览器驱动timeout: 超时时间,等待的最长时间(同时要考虑隐性等待时间)poll_frequency: 每次检测的间隔时间,默认是0.5秒ignored_exceptions:超时后的异常信息,默认情况下抛出NoSuchElementException异常
2.until(method,message='')method: 在等待期间,每隔一段时间调用这个传入的方法,直到返回值不是Falsemessage: 如果超时,抛出TimeoutException,将message传入异常
3.until_not(method,message='')until_not 与until相反,until是当某元素出现或什么条件成立则继续执行,until_not是当某元素消失或什么条件不成立则继续执行,参数也相同。

3.2.expected_conditions有哪些条件?

1.判断标题是否和预期的一致

title_is

2.判断标题中是否包含预期的字符串

title_contains

3.判断指定元素是否加载出来

presence_of_element_located

4.判断所有元素是否加载完成

presence_of_all_elements_located

5.判断某个元素是否可见. 可见代表元素非隐藏,并且元素的宽和高都不等于0,传入参数是元组类型的locator

visibility_of_element_located

6.判断元素是否可见,传入参数是定位后的元素WebElement

visibility_of

7.判断某个元素是否不可见,或是否不存在于DOM树

invisibility_of_element_located

8.判断元素的 text 是否包含预期字符串

text_to_be_present_in_element

9.判断元素的 value 是否包含预期字符串

text_to_be_present_in_element_value

10.判断frame是否可切入,可传入locator元组或者直接传入定位方式:id、name、index或WebElement

frame_to_be_available_and_switch_to_it

11.判断是否有alert出现

alert_is_present

12.判断元素是否可点击

element_to_be_clickable

13.判断元素是否被选中,一般用在下拉列表,传入WebElement对象

element_to_be_selected

14.判断元素是否被选中

element_located_to_be_selected

15.判断元素的选中状态是否和预期一致,传入参数:定位后的元素,相等返回True,否则返回False

element_selection_state_to_be

16.判断元素的选中状态是否和预期一致,传入参数:元素的定位,相等返回True,否则返回False

element_located_selection_state_to_be

17.判断一个元素是否仍在DOM中,传入WebElement对象,可以判断页面是否刷新了

staleness_of

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

Selenium自动化教程:延时等待的3种方式!,软件测试,经验分享,自动化测试,selenium,测试工具,压力测试,安全性测试,自动化测试,性能测试,接口测试

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!文章来源地址https://www.toymoban.com/news/detail-821493.html

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

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

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

相关文章

  • Python+Selenium4三大等待&预期条件_web自动化(4)

    目录 0. 上节回顾 1. 定位失败的原因 2. 强制等待 3. 隐式等待 4. 显式等待 【重点难点】 4.1. 实例化 WebDriverWait 对象 4.2. 指定等待条件 4.3. 等待条件的具体要求 4.3. 1. 等待条件是一个函数 4.3. 2. 返回值是布尔值 4.3. 3. 只有一个参数,参数值是driver 4.3. 4. 出现异常 5. 流畅等待 (

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

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

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

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

    2024年02月13日
    浏览(40)
  • Python+Selenium自动化测试详细教程

       Python Selenium是Selenium WebDriver的Python语言封装,为Python开发者提供了一个方便易用的自动化测试库。它支持多种浏览器(如Chrome、Firefox、Edge等)以及多个操作系统,可以模拟用户在浏览器中的各种行为,包括打开网页、查找元素、输入文本、点击链接、提交表单、上传文

    2023年04月18日
    浏览(52)
  • 【教程】JAVA + selenium 进行自动化测试

    自动登录淘宝 获取请求响应数据等 使用到的工具类

    2024年02月11日
    浏览(45)
  • 自动化测试:Selenium原理及安装教程

    目录 一、客户端和驱动(环境)安装 1、安装客户端库 2、安装浏览器和驱动 二、简单示例(Python自动化开发) 省略浏览器驱动路径 三、常见问题 关闭 chromedriver 日志 浏览器首页显示防病毒重置设置 扩展知识 Selenium 是一套 Web网站 的程序自动化操作 解决方案。 通过它,我

    2024年02月09日
    浏览(55)
  • 8.测试教程-自动化测试selenium-3

    大家好,我是晓星航。今天为大家带来的是 自动化测试selenium第三节 相关的讲解!😀 unittest 是python 的单元测试框架,它主要有以下作用: **提供用例组织与执行:**当你的测试用例只有几条时,可以不必考虑用例的组织,但是,当测试用例达到 成百上千条时,大量的测试用

    2024年03月23日
    浏览(42)
  • 7.测试教程-自动化测试selenium-2

    大家好,我是晓星航。今天为大家带来的是 自动化测试selenium第二节 相关的讲解!😀 一个简单自动化脚本的构成: 脚本解析 coding = utf-8 防止乱码,在编辑器里面可以不用加,因为编辑器默认的就是UTF-8模式。 from selenium import webdriver 导入webdriver工具包,这样就可以使用里面

    2024年03月20日
    浏览(42)
  • 自动化测试之八大元素定位方式(python3.10+selenium4)

    元素的定位是自动化测试核心。要操作一个对象,首先要识别定位或找到这个对象。为了实现网页整体布局,我们先要知道,一个元素,是如何定位到页面上的某个位置的,这就是元素定位。 系统环境 Windows 11 📌 python3.10.5 🔖 selenium 4.8.0 🚩 注意:以下每种定位方式均有一

    2024年02月03日
    浏览(80)
  • python+selenium的web自动化测试之8种元素定位方式详解

    目录 前言 单一属性定位 通过元素的id 通过元素的name 通过元素的class 通过元素的标签名 通过元素的超链接文本 通过元素的部分超链接文本 XPTH定位 CSS定位 辅助定位工具 ​ 我们在做WEB自动化时,最根本的就是操作页面上的各种元素,而操作的基础便是元素的定位,只有准确

    2023年04月16日
    浏览(60)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包