Selenium 4 发布公告

Selenium 4.0.0 已發布!立即获取,机不可失!

我们非常荣幸地宣布 Selenium 4 的发布。它适用于 Java、.Net、Python、Ruby 和 Javascript。您可以从您最喜欢的套件管理器下载,或直接从 GitHub 下载

如果您已经是 Selenium 用户,则此更新应该像将您的依赖项从 3.x 更改为 4.0.0 一样简单。我们努力确保这是一个“直接”升级,专注于保持公共 API 尽可能稳定。

当然,我们已经做出了更改,因此如果您依赖于标记为 Selenium 内部或已弃用的代码,您可能会遇到一些小问题。请查看我们的文档,以获取有关如何处理我们意识到的每个常见问题的建议。

但 Selenium 4 不仅仅是之前版本的稳定版本!它带来了一系列全新的、令人兴奋的功能,我们希望这些功能能使您的测试编写更有趣,并在您运行时更加稳定。让我们来看看其中的一些功能!

我们引入了“相对定位器”。这些定位器允许您使用人们也使用的语言来指定页面上元素的查找位置;例如“在该元素上方”或“在该另一个元素的右侧”之类的语言。希望这将为您提供一个工具来对抗极其复杂的定位器,使您的测试更清晰易懂,并且更能适应页面 DOM 中的更改。我们不是第一个提出这个想法的人——这个荣誉属于 Sahi ——但如果您以前没有使用过它们,我们希望您会喜欢它们!

如果您使用的是 Firefox 或衍生自 Chromium 的浏览器,我们也添加了大量新功能。这些功能包括处理 “基本”和“摘要”身份验证、网络拦截(您是 HTTP 418 吗?),以及执行常见的请求任务,例如等待 DOM 中的更改,或提供一种查看 Javascript 错误的方法。

我们以一种符合我们现有 API 的方式添加了这些新功能。无需重写您的测试:只需在您觉得合适时使用新功能即可。

我们还重建了 Selenium Grid,从诸如 ZaleniumSelenoid 等成功的项目中吸取经验教训,以增强功能。这个新的 Grid 在单机上作为单个进程运行,与在传统的“中心和节点”配置中运行一样良好,但它也支持完全分布式的模式,用于运行 Kubernetes 的现代基础设施中。它具有更好的内置安全性,因为我们知道保护 Grid 可能是一项艰巨的任务。在所有这些规模和大小下,我们添加到语言绑定的所有新功能都将按预期工作。

Grid 还可以管理您本地机器上的 Docker 容器,拉取诸如 standalone firefox server 之类的映像档,从而使您的基础设施维护变得轻松一些。

最后,Grid 更易于管理。我们改进了 UI,将其置于 GraphQL 模型之上,任何人都可以自由查询和使用该模型来创建他们自己的 Grid 可视化或监视器。如果您想查看正在运行的会话,可以使用实时 VNC 预览打开并与之交互,从而更好地了解正在发生的事情。如果您想要更多信息,我们已将对 OpenTelemetry 的支持集成到 Grid 中,因此现在您可以准确地了解正在发生什么、在哪里以及何时发生。

我知道说“非常荣幸”是一种陈词滥调,但老实说,这确实是发自内心的。从事 Selenium 这个新版本的开发工作,有机会与一些了不起的工程师合作,并成为一个充满活力和活力的社群的一份子。编写这些代码,与这些人一起工作,非常有趣,并且在这里尽可能多地对他们说“谢谢”感觉是理所当然的。所以,事不宜迟……。

我们要感谢所有多年来帮助 Selenium 取得成功的用户。没有你们,我们不会有今天的成就。我们还要感谢所有提交了 Pull Requests 的贡献者,你们的贡献使 Selenium 变得更好。对于所有花时间提交问题并告知我们存在问题的人:谢谢你们。只有当我们知道有些东西需要改进时,我们才有机会改进!

最后,感谢所有 Selenium Committers、BrowserStackSauce Labs 和我们的 Selenium-Level 赞助商,感谢你们为我们的用户准备好这个版本。

我们希望您喜欢 Selenium 4,并且我们迫不及待地想看看您将用它来做什么!

上次修改时间:2024 年 7 月 10 日:Release 4.22 Updates (#1765) (fa7b1165ed0)