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

2023-09-21 15:04:13

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)

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

在这里插入图片描述

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

更多推荐

RHCE——二十、Ansible及安装与配置

Ansible一、自动化运维的背景运维自动化二、自动化运维的体系结构及组成1、系统预备2、配置管理3、监控报警4、常用工具三、自动化运维的发展概述1、运维工作内容分类2、运维自动化标准化2.1物理设备层面2.2操作系统层面2.3应用服务层面2.4运维操作层面四、Ansible的介绍1、什么是Ansible1.1Ansi

睿趣科技:抖音开店的操作流程有哪些

随着社交媒体的兴起,抖音已经成为了一款备受欢迎的短视频分享平台。许多人看到了在抖音上开店的商机,因此抖音开店也逐渐成为了一种新兴的商业模式。那么,抖音开店的操作流程究竟有哪些呢?下面将为您详细介绍。第一步:选定产品和目标市场在开店之前,您需要先确定您要销售的产品或服务以及目标市场。了解您的受众群体是谁,他们的需求是什么

【微信小程序】最新隐私弹窗组件

程序员何苦为难程序员微信小程序又发布了新一波政策就是获取头像昵称位置啥啥各种用户信息的时候都需要先搞个弹窗让用户确认才行小程序用户隐私保护指引内容介绍必须跟上啊咱公司的大佬马上搞了个组件贴出来学习一下顺便给大家参考<!--components/privacy/privacy.wxml--><!--隐私弹窗--><vie

通过API爬取到的淘宝商品详情数据展示(api测试入口)

API名称:item_get响应数据item:{num_iid:"698291711589",title:"美洋MEIYANG【现货】大嫂的西装内有乾坤率性撞色TR垫肩直筒西服",desc_short:"",price:439.12,total_price:0,suggestive_price:0,orginal_pr

山洪灾害监测预警系统解决方案

一、方案背景近几年我国频繁发生山洪灾害现象,造成大量的人员伤亡,使得洪涝灾害死亡总人数呈上升趋势,群死群伤事件时有发生。为了提高山洪灾害监测预警能力,加强灾害发生时的快速反应能力,我司研发出了山洪灾害监测预警系统设备,它具有技术先进、功能完美、应用成熟等特点。在近年汛期发挥了显著的防洪减灾的效益,有效减少了山洪灾害造成

SQLBackupAndFTP 数据库定时备份工具介绍

今天给大家推荐推荐一款非常实用的数据库定时备份工具,大神必备!一、SQLBackupAndFTP是什么?SQLBackupAndFTP是一款用于备份SQLServer、MySQL和PostgreSQLServer数据库的实用软件,执行定期的完整备份、差异备份和事务日志备份,备份完成后产生的备份压缩包文件可以将它们存储在

​Segment-and-Track Anything——通用智能视频分割、跟踪、编辑算法解读与源码部署

一、万物分割随着Meta发布的SegmentAnythingModel(万物分割)的论文并开源了相关的算法,我们可以从中看到,SAM与GPT-4类似,这篇论文的目标是(零样本)分割一切,将自然语言处理(NLP)的提示范式引入了计算机视觉(CV)领域,为CV基础模型提供了更广泛的支持和深度研究的机会。SegmentAny

那些配置服务器踩的坑

最近在配置内网,无外网的服务器,纯纯记录一下踩得坑,希望看到的人不要再走这条弯路。-----------------------------------------------------------------------------------------------------------------------

科技资讯|Vision Pro头显无损音频仅限USB-C AirPods Pro 2耳机

彭博社的马克・古尔曼在最新发布的推文中表示,苹果VisionPro头显的无损音频仅限于USB-CAirPodsPro2耳机。新款采用USB-C的AirPodsPro2升级到了IP54级别(原版不防尘,仅IPX4级抗水),可陪伴用户在恶劣的环境中展开冒险。除此之外,苹果称其将实现具有超低延迟的无损音频,从而通过Apple

Java 学习路线分享 maven 是什么?

Maven是一款基于Java平台的项目管理和整合工具,它将项目的开发和管理过程抽象成一个项目对象模型(POM)。开发人员只需要做一些简单的配置,Maven就可以自动完成项目的编译、测试、打包、发布以及部署等工作。Maven是使用Java语言编写的,因此它和Java一样具有跨平台性,这意味着无论是在Windows,还是在

从淘宝数据分析产品需求(商品销量总销量精准月销)

淘宝数据分析总体来说可以分为商品分析、客户分析、地区分析、时间分析四大维度(参考数据雷达的分析思路)。在这里我重点说商品分析。在淘宝上开店的竞争还是非常激烈的,随便拿出一个单品就有很多竞品存在,所以做起来还是很难的,而想要在众多的竞品中做出来,就需要对竞品数据做分析,那么这个竞品数据在哪里查看呢?下面来了解下吧。淘宝竞

热文推荐