selenium的三类等待(详细)

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

一、等待的作用

为了保证自动化测试代码执行的稳定性,等待是必要添加的。自动化测试其实就是让系统可以自己执行。页面在加载的时候是需要时间的。为了保证代码的自动化可以稳定正确执行。所以需要人为干预,进行等待的设置。


二、 三类等待机制

2.1强制等待

就是time库下的sleep()方法,不考虑代码的逻辑,只要运行到sleep,程序就进入到等待的状态。等待时间由参数决定,参数的时间单位是秒。等待结束之后,再继续运行后续的代码。

一般而言,强制等待都是在新手阶段或者学习阶段会频繁使用的一种等待机制。只有在特定的调试场景下会去调用。此类等待会极大地造成代码的冗余,会有非常多重复的sleep代码,对于代码的阅读和维护非常不友好,而且使用起来会比较固化。

# 导入time模块
import time
from selenium import webdriver

# 创建webdrive的实例对象
driver = webdriver.Chrome()

# 通过get()方法打开百度
driver.get("https://www.baidu.com/")

# 设置等待时间,等待页面元素加载,10s后代码继续往下执行
time.sleep(10) 

 优点:容易用

缺点:冗余较大,维护成本较高,编写会很繁琐,会造成大量的时间都是在等待,从而影响到整体的运行效率。


2.1隐式等待

本质意义上而言,就是driver对象的一种设置项,在创建driver对象之后,就可以直接进行设置。入参单位同样是秒。式等待只对当前的driver有效,在整个driver生命周期中有效,如果driver被quit,则等待的设置失效。是通过调用implicitly_wait(10)方法实现的。

隐式等待会在页面加载完成之后,才开始。在元素的查找过程中,会持续性地获取指定元素对象。如果提前获取到元素,则会继续进行后续的操作。如果没有获取到,则会等待最大的等待时间,也会继续进行后续的操作。设置隐式等待之后,每一行代码的操作都会调用隐式等待。

# 隐式等待
driver.implicitly_wait(10)
# 访问指定的url:url的全部内容,一个都不能少
driver.get('http://www.baidu.com')

优点:只需要一行代码,对driver进行设置,即可在整个driver生命周期中生效。

缺点:如果找不到元素,不管。相对而言,会一定程度上影响到运行效率


3.1显式等待

专门对指定元素进行等待的操作。等待执行是基于代码运行到显式等待这一行时,来进行。类似于强制等待。整体显式等待的代码是基于WebDriverWait来进行的。

整体有两个方法来实现等待的逻辑操作。

until和until_not方法,两者的作用完全相反。

unti是直到某元素被获取,until_not则是表示某元素消失

显式等待在调用之后,如果获取元素成功,则会返回该元素对象,便于后续的继续调用,如果获取元素失败,则会抛出timeout异常,显示message参数定义的内容

el1 = WebDriverWait(driver, 5, 0.5).until(lambda element: driver.find_element('id', 'su'),
                                          message='显式等待失败,元素未获取成功')
# el1 = driver.find_element(by='id', value='su')

优点:精准直接地对某个指定的元素来进行等待,效率特别地高

缺点:调用会比较复杂


三、设置页面加载策略 

driver对象在访问系统的时候,会默认等待页面加载完成以后再进行后续的操作行为。在chromeoptions类中进行页面加载策略的设置,有三个不同的等级:

  • normal:Selenium默认的浏览器加载策略,在所有内容全部加载完成之后,再进行后续的操作。

  • eager:加载dom树结构,不加载静态资源

  • none:只加载基本的页面结构

设置更快的页面加载策略,可以极大提升整体的运行效率。但是容易出现报错(系统本身报错)。所以在设置的时候一定要慎重。


四、Alert弹窗操作 

 Alert弹窗和html的标签弹窗是两个概念。非常简单辨别弹窗是否为浏览器弹窗的方法:弹窗的样式是否与软件系统一致。

弹窗的交互形态是最早期的浏览器与人的交互形态。Alert是浏览器基于操作系统以及浏览器本身生成的弹窗,弹窗不被系统所控制。 

Alert分为Alert、Confirm、Prompt三种不同的弹窗。文章来源地址https://www.toymoban.com/news/detail-764460.html

  •  Alert:只有一个功能,大概率是确认
  • Confirm:有两个功能,大概率是确认和取消
  • Prompt:有三个功能,分别包含确认、取消、和输入文本
'''
    Alert弹窗的操作行为
'''
from selenium import webdriver

driver = webdriver.Chrome()
# 弹窗的操作处理
# 切换到弹窗
alert = driver.switch_to.alert
# 同意操作
alert.accept()
# 取消操作
alert.dismiss()
# 输入文本
alert.send_keys('这是prompt文本信息')
# 获取alert弹窗的文本
print(alert.text)

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

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

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

相关文章

  • python自动化测试工具selenium使用指南 ,绝对能帮到你

    目录 概述 python+selenium环境安装 使用selenium启动浏览器 selenium页面加载等待和检测 使用time.sleep()等待 使用implicitly_wait设置最长等待时间 使用WebDriverWait设置等待条件 检测document是否加载完成 selenium元素定位和读取 查找元素 dom元素交互 查找元素失败处理 selenium交互控制 Actio

    2024年02月08日
    浏览(38)
  • Python Selenium4.3.0(新语法) web自动化测试工具

    1 介绍 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。 支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等 这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够

    2024年01月24日
    浏览(37)
  • ubuntu 18.04 配置自动化测试工具 appium + selenium+python3

    sudo add-apt-repository ppa:danielrichter2007/grub-customizer sudo apt-get update sudo apt-get install grub-customizer sudo apt-get install openjdk-8-jdk ================================================================================ 【已经安装Android studio 可以跳过】 下载SDK =============================== 配置环境变量 【配置环境变量

    2024年02月03日
    浏览(80)
  • 【测试开发】第五节.测试——自动化测试(Selenium工具)

    作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:Java测试开发 每日一句: 人的一生,可以有所作为的时机只有一次,那就是现在!!! 前言 一、自动化测试的概念以及分类 二、Selenium—web自动化测试工具 2.1 自动化测试的一些前置工作 2.2 第一个自动化实例

    2024年02月04日
    浏览(51)
  • 自动化测试工具——Selenium详解

    Selenium是一个用于Web应用程序测试的工具。是一个开源的Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium可以直接运行在浏览器上,它支持所有主流的浏览器,支持的浏览器包括IE(7, 8,

    2024年01月20日
    浏览(46)
  • 如何使用自动化测试工具Selenium?

    哈喽,大家好,我是小浪。那么有一段时间没有更新了,还是在忙实习和秋招的事情,那么今天也是实习正式结束啦,开始继续更新我们的学习博客,后期主要是开发和测试的学习博客内容巨多,感兴趣的小伙伴们可以一键三连支持一下欧~ 目录 一、什么是自动化测试? 二、

    2024年02月11日
    浏览(39)
  • 一文详解:自动化测试工具——Selenium

    Selenium是一个用于Web应用程序测试的工具。是一个开源的Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium可以直接运行在浏览器上,它支持所有主流的浏览器,支持的浏览器包括IE(7, 8,

    2024年01月16日
    浏览(46)
  • 自动化测试工具-Selenium:Selenium的核心三大组件详解

    目录 1. WebDriver 1.1 WebDriver的通信方式 1.2 WebDriver的功能 1.3 W3C推荐标准 2. Grid 3. IDE Selenium 是支持 web 浏览器自动化的一系列工具和库的综合项目。官方对Selenium认可的三大组件或API分别是: WebDriver、Selenium IDE、Grid。 其中,WebDriver又被称为Selenium的核心。 下面本篇文章将深度介

    2024年02月03日
    浏览(36)
  • 自动化测试工具Selenium的语法续.

    OK,那么上篇博客我们介绍了如何搭建基于Java+selenium的环境,并且使用selenium的一些语法给大家演示了如何进行自动化测试的案例,那么本篇博客我们来继续学习selenium的一些其他的比较重要的语法,感谢关注,期待三连~ 目录 一、定位一组元素 二、下拉框处理 三、上传文件

    2024年02月10日
    浏览(40)
  • 自动化测试工具selenium的安装方法

    一、什么是selenium Selenium 是一套 Web网站 的程序自动化操作 解决方案。 通过它,我们可以写出自动化程序,像人一样在浏览器里操作web界面。 比如点击界面按钮,在文本框中输入文字 等操作。 Selenium 通过使用  WebDriver  支持市场上所有主流浏览器的自动化。 Webdriver 是一个

    2024年02月09日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包