宣布 Selenium 4
我们非常高兴地宣布 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,借鉴了 Zalenium 和 Selenoid 等成功项目的经验来增强功能。这个新的 Grid 既可以像单个进程一样在一台机器上运行,也可以在传统的“中心和节点”配置中运行,同时它也支持完全分布式模式,以便在运行 Kubernetes 的现代基础设施中使用。它内置了更好的安全性,因为我们知道保护 Grid 可能是一项艰巨的任务。并且在所有这些规模和大小下,我们添加到语言绑定的所有新功能都将按预期工作。
Grid 还可以管理您本地机器上的 Docker 容器,拉取例如 独立的 Firefox 服务器 等镜像,从而减少您的基础设施维护负担。
最后,Grid 更易于管理。我们改进了 UI,将其置于 GraphQL 模型之上,任何人都可以自由查询和使用该模型来创建他们自己的 Grid 可视化或监视器。如果您想查看正在运行的会话,可以打开并与之交互的实时 VNC 预览,从而更好地了解正在发生的事情。如果您需要更多信息,我们已将 OpenTelemetry 集成到 Grid 中,因此您现在可以确切地了解发生的事情、地点和时间。
我知道说“非常高兴”是陈词滥调,但老实说,这确实如此。开发这个新版本的 Selenium 是一个与一些了不起的工程师合作,并成为一个充满活力和朝气的社区的一份子的机会。编写这些代码,与这些人一起,是一件非常有趣的事情,在这里尽可能多地向他们表示“感谢”是合适的。所以,不再等待……
我们要感谢所有多年来帮助 Selenium 取得成功的用户。没有你们,我们不会有今天的成就。我们还要感谢所有提交 Pull Requests 的贡献者,你们的贡献使 Selenium 变得更好。对于所有花时间提交问题并让我们知道哪里有问题的人:谢谢你们。只有当我们知道有问题需要解决时,我们才有机会改进!
最后,感谢所有 Selenium 的提交者、BrowserStack、Sauce Labs 和我们的 Selenium 级赞助商,为我们的用户准备好这个版本。
我们希望您喜欢 Selenium 4,我们迫不及待地想看看您会用它做些什么!