Selenium 4 的新特性:为何需要进行主版本升级?
分类
在本系列的第二篇文章中,Simon Stewart 继续讨论 Selenium 4 的新功能以及此版本为何进行主版本升级。
在我的上一篇文章中,我分享了一些关于 Selenium 项目整体运作方式的信息。现在,让我们开始讨论 Selenium 4 以及即将推出的功能。我认为我应该澄清的一件事是“为什么主版本号会升级?”
有时候我会开玩笑说,版本号升级的主要原因是,虽然 Pi 的位数是无限的,但当我们从 3.14 升级到 3.141 时,人们有点不高兴。升级到 3.141.5 然后到 3.141.59 是我们想在这个特定想法上走的最远的一步 :)
更严肃地说,第一个原因是,我们有了一个修订版的 Selenium IDE。几年前,它过去仅限于 Firefox,因为它使用了 XPI 扩展机制(Firefox 特有)。现在它是一个 Web 组件,您可以为 Chrome、Firefox 以及任何支持 Web 组件的浏览器下载它。目前正在进行将其重写为 Electron 应用程序的工作,这将使我们能够更好地利用 IDE 运行所在的本机操作系统。这项工作主要由 Applitools 的开发人员推动。他们从一个由 SideX 公司迁移到使用 Web 组件的原始 Selenium IDE 开始。这是一个社区良好合作的绝佳范例。
其次,我们已完全采用 W3C WebDriver 协议,并放弃了对最初的自研线路协议的支持。Selenium 与 Web 浏览器通信的方式是通过一个线路协议,该协议实际上只是基于 HTTP 的 JSON。最初,当我们弄清楚事情时,它是有机地增长的,我们试图让浏览器执行我们需要它们执行的操作。最初的协议被称为 JSON 线路协议,因为它通过线路传输 JSON(我们不太擅长想出非常原始的名称)。
最初的协议是 W3C WebDriver 协议的基础,该协议平滑了一些粗糙的边缘,并为协议带来了一些急需的一致性。标准化协议改进的两个主要领域包括会话创建(我们消除了相当大的歧义)以及提供更丰富的 API 来指定用户操作。
那么,采用 W3C 协议对您意味着什么?老实说:它可能对您根本没有多大意义。如果您使用的是现代浏览器(过去几年发布的),您会发现实际上您已经使用 Selenium 3 与 W3C 协议进行通信。
那么,谁关心协议方言呢?当我们谈论像 Sauce Labs 这样的公司时,它们提供 Selenium 作为服务——他们关心它。生态系统已经为下一步做好了准备,因为这些公司的技术人员已确保他们理解并遵守 W3C 协议,并且 Selenium 项目的人员一直在那里提供帮助和建议。
Selenium 4 的另一个好处是,我们已尽力确保用户界面的 API 稳定。这意味着当您将项目从 Selenium 3 升级到 Selenium 4 时,它应该是一个即插即用的升级。您只需更改版本号,重新编译即可完成。
但是,您应该注意一些注意事项!主要的一点是,如果在 Selenium 3 的最后一个版本中某个方法已弃用,那么现在它可能已经消失了。我们利用主版本升级的机会删除了它们并清理了人们通常看不到的幕后内部结构。如果您是一名软件开发人员,您可能会认识到这是我们偿还一些技术债务 :)
请继续关注下一篇文章,我将在其中介绍 Selenium 4 中的一些新技巧。
此内容最初发布于 https://saucelabs.com/blog/whats-coming-in-selenium-4-why-the-major-version-bump