selenium 4.17正式发布,这几项更新值得关注

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

selenium最新版本,selenium,selenium,测试工具

(全文约1400字,阅读约需4分钟,首发于公众号:测试开发研习社,欢迎关注)

两天前,selenium 正式发布了新版本 4.17,其中 python 版本的变化有更新更新值得关注

1. CDP 支持范围调整到 >118

CDP(Chrome DevTools Protocol)支持对 Chrome 进行深度的检测、检查、设置、调试和分析,能够完成 webdriver 协议和 JavaScript 代码无法实现的复杂功能。

selenium 4.17 不再支持 chrome 118 以下的版本,

当然,基于 webdriver 协议对浏览器进行自动化控制还是正常使用的

2. 为页面加载策略创建枚举类

页面加载策略(pageLoadStrategy)和元素定位策略(Element Locator strategies)、等待策略(Waiting Strategies),

并称 Selenium 中的三大策略。通过对策略的调整,可以提高 Web 自动化的执行速度,减少操作失败。

其中页面加载策略有 3 种选项:

  1. none:完成 HTML 下载后返回

  2. eager:完成 HTML 渲染后返回

  3. normal:完成资源(图片、CSS、JS)渲染后返回

页面加载策略的默认值为 normal,也就是等整个页面的各项资源都下载渲染后,开始执行下一行代码。

例如,腾讯网首页引用了大量资源文件,默认情况下定位一个新闻标题,耗时需要 5 秒多

selenium最新版本,selenium,selenium,测试工具

在调整了页面加载策略后,会放弃等待资源文件,马上执行下一行代码

(这时元素可能还没渲染出来)

再调整等待策略,在定位失败时不断重试,确保定位成功

这样,仅需 1 秒多即可完成定位

selenium最新版本,selenium,selenium,测试工具

注意这里的代码写法:

from selenium import webdriver
from webdriver_helper import get_webdriver

options = webdriver.ChromeOptions() # 实例化options
options.page_load_strategy = 'none'  # 修改页面加载策略,提前返回

driver = get_webdriver(options=options) # 起点浏览器时传递options

修改定位策略是给 options 的 page_load_strategy 赋值字符串,字符串难免会记错、写错。

本次Selenium 4.17 的更新中,创建了枚举类 PageLoadStrategy,在 IDE 中可以体验代码提示、自动补全,避免了记错写错的问题

selenium最新版本,selenium,selenium,测试工具

注意:在单页应用中,往往并不适合调整页面加载策略

3. 提高浏览器驱动的启动速度

简单来说,优化了 sleep 代码,节省了约 0.5 秒,

接下来看看优化的细节。

在之前的版本中,为了确保浏览器驱动启动成功有这样的处理逻辑:

  1. 启动子进程后,休眠 0.5 秒,然后判断是否启动成功

  2. 如果失败,重复第一步

  3. 如果失败 60 次,放弃启动,进行报错

有个哥们经过实验发现:顺利的情况下,浏览器驱动启动速度其实极快!

于是调整了休眠重试的机制:

selenium最新版本,selenium,selenium,测试工具

不再是每次重试,都等待固定的 0.5 秒

而是第一次等待 0.01,以后每次重试增加 0.05,直到 0.5 一次

这哥们还补充了个测试用例,优化之后正常情况下启动时间 <= 0.01

selenium最新版本,selenium,selenium,测试工具

对细节感兴趣的观众可以点击【查看原文】

注意,此处优化的是【浏览器驱动】的启动时间,不是【浏览器】的启动时间。

浏览器的启动时间耗费更久、波动更大

4. 变更记录全文

变更记录全文如下,你可以找对感兴趣的内容进一步了解:

Selenium 4.17.2

  • [Python] 修正 typing_extension 依赖以生成 wheel

Selenium 4.17.1

  • 在 setup.py 中修正拼写错误 (#13487)

Selenium 4.17.0

  • 添加页面加载策略枚举 (#13258)

  • 在升级版本时使用正确的文件名 (#13282)

  • 根据事件类型过滤记录的双向文本日志 (#12951)

  • 在 Selenium 管理器输入中添加 Python 以进行跟踪 (参见 #13288)

  • 根据尝试次数延迟等待服务启动 (#13321)

  • 使用 subprocess.DEVNULL 替代 open (os.devnull) 以避免泄漏文件句柄 (#13329)

  • 移除所有对 firefox-bin 的引用

  • 检查是否支持 Selenium Manager 的体系结构 / 平台组合 (#13381)

  • 移除扩展连接类和 webdriver.xpi 的其他用法

  • 移除 Edge 服务中已弃用的 verbose 参数

  • 移除 webdriver 中已弃用的 desired_capabilities 属性

  • 移除已弃用的应用程序缓存支持

  • 记录请求时截断大字符串

  • 更新 WPEWebKit 支持代码 (#13278)

  • [Python] 修复 WPEWebKit 的 Python 支持代码

  • 默认情况下不更改现有目录的配置偏好项 (#13477)

  • 弃用不受支持的 Firefox 配置方法 (#13477)

  • 弃用 FirefoxBinary 类 (#13476)

  • 修复 mypy 中的类型错误 (#13482)

  • 添加 Chrome 121 的 CDP 并移除 118

原创不易,喜欢请星标+点赞+在看,关注公众号《测试开发研习社》,不错过技术干货,谢谢鼓励!文章来源地址https://www.toymoban.com/news/detail-849656.html

到了这里,关于selenium 4.17正式发布,这几项更新值得关注的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • IOS17正式版今日发布

    北京时间9月19日凌晨,苹果公司正式向全球用户推送了期待已久的iOS 17正式版。此次更新为iPhone带来了多项激动人心的功能,包括对“电话”、“信息”、FaceTime通话的重大更新,“待机显示”以及音乐、小组件、Safari浏览器的升级等。 据了解,iOS 17正式版的系统安装包大小

    2024年02月07日
    浏览(60)
  • Visual Studio 2022 v17.6 正式发布

    Visual Studio 17.6 正式发布,这个最新版本提供了一系列强大的工具和功能,旨在使你能够制作出最先进的应用程序。 通过 Visual Studio 2022,目标是帮助你在更短的时间内完成 IDE 内的所有开发任务,在这个版本中,微软根据开发者的反馈改进了几个核心体验的性能。 性能改进

    2024年02月06日
    浏览(79)
  • CiteScore 2022正式发布,AI Open首获即达22.5分,三大高被引论文值得一看

    当前,由 ChatGPT、Stable Diffusion 等 AI 大模型掀起的新一轮科技浪潮,正在引领各个行业的变革性发展。及时、深入、全面地了解 AI 行业的前沿动态,有助于我们跟上 AI 行业的发展步伐,抓住时代机遇。 一本学术期刊的高影响力,来自无数投稿人和期刊背后工作者的共同努力

    2024年02月08日
    浏览(34)
  • JDK8、JDK11、JDK17和JDK21这几个版本更新的主要特性

    JDK8 是 Java 的一个重大更新版本,引入了一系列新特性和改进,主要包括: Lambda 表达式: Lambda 表达式允许我们以简洁、函数式的方式编写代码,使代码更易于理解和维护。- Stream API : Stream API 提供了一套声明式处理数据的方式,使得对集合和数组的操作更加直观和高效。

    2024年04月29日
    浏览(49)
  • iOS17.2正式版什么时候发布? 13大新功能细节抢先看

    苹果已经发布了针对开发者的iOS 17.2 Beta测试版,而iOS 17.2正式版预计会在2023年12月发,新版本给iPhone带来不少新功能,下面小编就带大家抢先了解iOS 17.2即将带来的13个新功能亮点细节。 1.手记Journal App上线 全新「手记」 Journal App终于要在iOS 17.2更新中正式上线,这是一款能够

    2024年02月05日
    浏览(52)
  • Visual Studio 2022 版本 17.6 预览版发行版小范围更新,值得你一看

    写在前面:       Visual Studio 2022 v17.6 是vs2022 v17.6小版本的一个更新,此版本拓展了 vs2022 v17.5版本的功能,旨在提高您的工作效率,无论你是 .NET 开发人员、游戏开发人员和/或C++开发人员 此博客总结了此版本中的主要更新和修改。 目录 集成开发环境生产力 大括号对着色

    2024年02月09日
    浏览(45)
  • 【4.17】贪心算法入门

    贪心的本质是选择每一阶段的局部最优,从而达到全局最优 。 刷题或者面试的时候,手动模拟一下感觉可以局部最优推出整体最优,而且想不到反例,那么就试一试贪心 。 贪心算法一般分为如下四步: 将问题分解为若干个子问题 找出适合的贪心策略 求解每一个子问题的最

    2023年04月18日
    浏览(26)
  • CloudStack 4.17 安装部署

    市面上cloudstack大多部署教程都比较旧,这里写一篇最新版本的部署安装教程(4.17),为了方便解释相关配置以及进行相关配置,本篇会把管理节点和计算节点分开写 1.管理节点部署(admin) 管理节点ip:192.168.1.11/24–hk.admin 计算节点ip:192.168.1.12/24–hk.node1–需要开启虚拟化

    2023年04月08日
    浏览(25)
  • iOS 17 正式版预计 9 月中下旬发布,部分新功能延后推出

    苹果公司预计将在 9 月中下旬推出 iOS 17 正式版,iPhone XS 及更新的机型可免费更新。这次更新包含了许多新功能,但 是 根据苹果公司的网站显示,并不是所有的功能都会立即可用。苹果表示 有一些功能 “将在今年晚些时候推出” , 比如:日记应用、 Apple Music 协作播放列表

    2024年02月12日
    浏览(47)
  • 苹果 macOS 14.1.2 正式发布 更新了哪些内容?

    苹果今日向 Mac 电脑用户推送了 macOS 14.1.2 更新(内部版本号:23B92 | 23B2091),本次更新距离上次发布隔了 28 天。 需要注意的是,因苹果各区域节点服务器配置缓存问题,可能有些地方探测到升级更新的时间略有延迟,一般半小时内,不会太久。 根据苹果的说法,今天的更新

    2024年02月04日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包