Selenium 4.11 正式发布--再也不用手动更新chrome driver 了

news2024/11/29 0:40:26

Selenium 4.11.0 正式发布了,先来看一下主要特性。

Chrome DevTools支持的版本现在是:v113、v114和v115(Firefox仍然对所有版本使用v85)
通过Selenium Manager支持Chrome For Testing(CfT)
Selenium Manager现在可以在PATH或配置的路径上定位driver的二进制文件,检查潜在的不兼容性,并提供更好的警告和错误信息。
每晚都会推送Ruby和Java的构建版本。对其他语言的支持即将推出。
在查找窗口句柄时忽略进程ID匹配 - Edge上的IE模式。
这里最重要的更新是支持了Chrome For Testing.

Chrome For Testing

这是chrome推出的专门针对测试场景使用的浏览器,为了解决下面一些痛点

chrome的自动化更新。自动更新:对用户来说很方便,对开发者来说很痛苦,特别是测试同学,应为我们希望(a)在重复的测试运行中获得一致且可重复的结果,但如果浏览器可执行文件或二进制文件在两次运行之间决定自行更新,这会毁了一切。(b)我们想要固定一个特定的浏览器版本,并将该版本号添加到你的源代码仓库中,这样你就可以检出旧的提交和分支,并重新运行测试,以便使用那个时间点的浏览器二进制文件进行测试。基于上面两个原因,自动更新让人欲除之而后快。

下载不到特定版本的chrome浏览器。除了自动更新之外,你可能也发现很难找到特定版本的Chrome二进制文件。谷歌故意不提供带有版本号的Chrome下载,因为用户不应该关心版本号,他们应该尽快更新到最新版本。这对用户来说很好,但对于需要在旧版本的Chrome中重现错误报告的开发人员来说很痛苦。这个问题的一个更具体的例子是当你想要使用ChromeDriver进行浏览器自动化时。你不仅需要以某种方式下载Chrome二进制文件,还需要一个相应版本的ChromeDriver二进制文件,以确保这两个二进制文件是兼容的。

在这样的背景下,chrome for testing应运而生。官方的说法是

为了解决这些问题,Chrome for Testing是Chrome的一个专用版本,针对测试用例进行了优化,不会自动更新,与Chrome发布流程集成,每个Chrome版本都可用。这个版本的二进制文件尽可能接近常规的Chrome,同时不会对测试用例产生负面影响。

为了创建用于测试的Chrome,我们已经对Chromium和Chrome代码库进行了修改,并建立了基础设施来构建和上传这些二进制文件到一个公开可用的存储桶,与Chrome的发布过程保持同步,覆盖所有渠道(稳定版、测试版、开发版和灰度版)。

具体的安装方式是通过npm

# Download the latest available Chrome for Testing binary corresponding to the Stable channel.
npx @puppeteer/browsers install chrome@stable

# Download a specific Chrome for Testing version.
npx @puppeteer/browsers install chrome@116.0.5793.0

# Download the latest available ChromeDriver version corresponding to the Canary channel.
npx @puppeteer/browsers install chromedriver@canary

# Download a specific ChromeDriver version.
npx @puppeteer/browsers install chromedriver@116.0.5793.0

在selenium 4.11中,我们可以直接通过Selenium Manager来进行chrome for testing的安装,具体的方式在https://www.selenium.dev/blog/2023/whats-new-in-selenium-manager-with-selenium-4.11.0/ 这篇里有介绍。

简单一句话总结:再也不用手动更新chrome driver了!!

其他细节

Java

Make user defined SlotMatcher used everywhere in Grid code (#12240)
Add support for FedCM commands (#12096)
JavaScript

BiDi Add Network module events (#12197)

NET

Implementation of event wrapped shadow root element (#12073)
Allow setting a different pointer, keyboard, or wheel on input device (#11513)
Add move to location method to Actions (#11509)
Add support for Safari Technology Preview (#12342)
Fix error when we send non-base64 data for fetch command (#12431)
Fix continueResponse method in CDP (#12445)

Python

removed redundant attributes capabilities and set_capability in wpewebkit/options.py (#12169)
improve driver logging, implement log_output() for flexibility and consistency of driver logging (#12103)
let users pass service args to IE driver (#12272)
Expose WPEWebKitService and WebKitGTKService in the public API
Remove deprecated ActionChains.scroll(…)
Add creation flag for windows in selenium_manager (#12435)

Ruby

Made network interception threads fail silently (#12226)
Remove deprecated code (#12417)

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1028284.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络基础 (深信服)

一 走进网络世界 1.1.1 企业网络环境介绍 计算机网络类型: LAN ------本地局域网 Local Area Network: •通常指几千米以内的,可通过某种介质互联的计算机、打印机、modem或其他设备的集合 WAN ------ 广 域 网 Wide Area Network&am…

ClickHouse分布式集群部署

目录 ​编辑 一、环境说明 二、安装部署 2.1 RPM方式安装 2.1.1 安装yum-utils 2.1.2 配置yum repo源 2.1.3 yum install 下载安装clickhouse 2.2 信息配置 2.2.1 配置外网可访问地址 2.2.2 修改存储路径 2.2.2.1 新建存储目录 2.2.2.2 授权 2.2.2.3 修改配置 2.…

Tomcat的启动问题

今天去打开Tomcat的时候没反应 如下 按之前是到Tomcat目录下的bin目录下的startup.bat文件,双击,就可以启动Tomcat服务器。启动后可以 打开浏览器,在浏览器地址栏中输入以下地址测试: 1、http://localhost:8080 2、http://127.…

手撕 LFU 缓存

大家好,我是 方圆。LFU 的缩写是 Least Frequently Used,简单理解则是将使用最少的元素移除,如果存在多个使用次数最小的元素,那么则需要移除最近不被使用的元素。LFU 缓存在 LeetCode 上是一道困难的题目,实现起来并不…

Fair下发产物-布局DSL生成原理

一、概述 大家都知道,Flutter在release环境是以AOT模式运行的,这就决定了我们要做动态化的话无法简单的通过动态下发dart代码执行的。根据Fair团队的前期调研,我们对布局动态化和逻辑动态化的实现采用了两套不同的实现方案,对于布局部分,我们在解析dart源文件之后生成DSL…

xterm使用

xterm使用 前言1. xterm介绍2. xterm使用2.1 xterm简单示例2.2 xterm监听输入并在终端中实时显示方式1:onKey监听方式2:onData监听onData和onKey什么区别 2.3 xterm与vue整合2.3 xterm vue websocket 附录配置说明 前言 vue与xterm整合记录 1. xterm介绍 xterm 是一个基于…

jvm深入研究文档--java中的堆--详解!--jvm底层探索(1)

阿丹: JVM的内存分区包括以下几个部分: 堆区(Heap) - 这是JVM的主要部分,用于存储实例对象和大多数Java对象,如数组和用户定义的类。方法区(Method Area) - 这是线程私有的&#x…

内网穿透的应用-NAS私有云存储 - 搭建Nextcloud私有云盘并公网远程访问

文章目录 摘要1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问 4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名 摘要 Nextcloud,它是ownCloud的一个分支,是一个文件共享服…

利用fiddler正向代理前端请求到本地后端

前景:在实际开发测试环境中,(前后端均已上线到测试服务器或前端以上线而后端还在开发中)。在测试过程中(前端页面点击,功能测试)发现了bug或异常点。 正常排查问题可能是先利用浏览器检查工具查看接口的返回…

Unity Bolt UGUI事件注册方式总结

Bolt插件提供了丰富的事件注册方式,开发者几乎不用编写任何代码就可以完成事件的注册,进行交互。下面是我使用UI事件注册的相关总结。 1、通过UI控件自身拖拽实现事件的注册。 Button的事件注册: 新建一个UnityEvent事件, Butt…

PASCAL VOC2012数据集详细介绍

PASCAL VOC2012数据集详细介绍 0、数据集介绍2、Pascal VOC数据集目标类别3、 数据集下载与目录结构4、目标检测任务5、语义分割任务6、实例分割任务7、类别索引与名称对应关系 0、数据集介绍 2、Pascal VOC数据集目标类别 在Pascal VOC数据集中主要包含20个目标类别&#xff…

uniapp开发h5 调用微信sdk 全网最全指南!!!! 血泪史!!!

目录 场景: 技术栈: 遇到的问题先抛出来: 1.通过后端同学获取调用微信sdk所需的签名过程中,遇到的跨域问题 2.使用微信sdk前提必须是微信容器,换句话说就是微信浏览器打开,才能使用微信sdk 3.如何在开…

方案:浅析利用AI智能识别与视频监控技术打造智慧水产养殖监管系统

一、方案背景 针对目前水产养殖集约、高产、高效、生态、安全的发展需求,基于智能传感、智慧物联网、人工智能、视频监控等技术打造智慧水产系统,成为当前行业的发展趋势。传统的人工观察水产养殖方式较为单一,难以及时发现人员非法入侵、偷…

Windows系统如何部署Wing FTP Server与公网远程访问【内网穿透】

Wing FTP Server安装配置结合内网穿透实现公网访问本地站点 文章目录 Wing FTP Server安装配置结合内网穿透实现公网访问本地站点前言1.Wing FTP Server下载安装2.Wing FTP Server配置部署3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3…

ChatGLM 实现一个BERT

前言 本文包含大量源码和讲解,通过段落和横线分割了各个模块,同时网站配备了侧边栏,帮助大家在各个小节中快速跳转,希望大家阅读完能对BERT有深刻的了解。同时建议通过pycharm、vscode等工具对bert源码进行单步调试,调试到对应的模块再对比看本章节的讲解。 涉及到的jupyt…

【多目标跟踪】 TrackFormer 耗时三天 单句翻译!!!

【多目标跟踪】 TrackFormer 耗时三天 单句翻译!!! TrackFormer: Multi-Object Tracking with Transformers Abstract The challenging task of multi-object tracking (MOT) re-quires simultaneous reasoning about track initiali…

纽禄美卡Neuromeka亮相美国FABTECH,展示用于焊接的3D视觉协作机器人

原创 | 文 BFT机器人 纽禄美卡Neuromeka公司在由美国精密成型协会、美国焊接协会、化工涂料协会等5大协会举办的美国金属加工及焊接展览会FABTECH上精彩亮相。这家总部位于韩国首尔的公司成立于2013年,是机器人解决方案领域的领先供应商,致力于提高各种…

通过 chatgpt 协助完成网站数据破解

Chatgpt 的出现极大地提升了程序员的工作效率,常见的使用场景包括代码自动生成、代码静态检查等,那么 chatgpt 能否用于某些网站的数据破解工作呢? 问题 某天线上服务开始报警,原来是某个视频网站无法获取到其 cdn 地址导致的下…

【AD】【规则设置】设置四层板

设置四层板 一般 4层板,都会把 地 和 VCC放在内层。1、使用快捷键D-K 进入层叠管理器,添加负片层添加完后,修改层名,方便辨识修改格式:属性层号 2、进入相应layer 设置网络设置GND层设置VCC层特点:在层内可…

【HackTheBox Topology】打靶记录

一、信息收集 1、nmap 扫描发现22 80 端口 2、访问80端口 找到两个域名 topology.htb latex.topology.htb 3、子域扫描发现如下两个域名 dev.topology.htb stats.topology.htb C:\root> gobuster vhost -u http://topology.htb --append-domain -w /usr/share/seclists…