自2018年发布以来,​​Selenium​​​框架的最新版本​​Selenium 4​​​已成为人们谈论的话题。​​Selenium 4​​​显而易见即将引领潮流,因为它拥有许多新功能和增强功能。虽然没有正式宣布​​Selenium 4​​​的最终版本,但用户和测试自动化爱好者已经开始通过下载​​Selenium 4 Alpha​​版本进行探索和试验。

之前也分享过​​Selenium 4​​的一些路边消息:

尽管​​Selenium​​​具有各种语言兼容性,如​​Java​​​、​​C#​​​、​​Python​​​、​​JavaScript​​​、​​Ruby​​​和​​PHP​​​,本文基于​​Selenium 4.0.0-alpha-7​​版本进行分享和实践。

Selenium 4不同之处

为了回答这个问题,我们将在​​Selenium 3 vs Selenium 4​​​对比不同部分快速演示​​Selenium 4​​提供的新功能:

W3C标准化

在​​Selenium 3​​​中,​​JSON Wire Protocol​​​是测试代码和​​Web 浏览器​​​之间的主要通信模式。​​ChromeDriver​​​、​​GeckoDriver​​​等主流浏览器驱动都遵循​​W3C​​​标准。这导致​​Selenium 4​​​根据​​W3C​​协议对请求进行编码和解码。

在底层,​​Selenium 4​​​使用​​WebDriver W3C​​​协议。这消除了​​Selenium 3​​​中​​JSON Wire Protocol​​​所需的编码和解码开销。这一重大的架构变化将导致​​Selenium 4​​的跨浏览器测试(即跨不同版本和类型的浏览器的测试)更加稳定。

Selenium 4 IDE

​Selenium 4​​​中的​​IDE​​​不仅仅是一个基本的播放和记录测试工具。与​​Firefox​​​一起,它可用于​​Chrome​​​浏览器(作为 ​​Chrome​​扩展程序)。

​Selenium 4 IDE​​​中的​​SIDE Runner​​​工具允许您在本地​​Selenium Grid​​​和基于云的​​Selenium Grid​​​上并行运行 ​​Selenium​​测试。而导出功能使测试能够以​​Selenium​​​支持的语言(如 Python、C#、Java 等)导出录制的测试。​​Selenium 4 IDE​​​是一个更新的超级有用的产品,仅在​​Selenium 4​​中可用。

Selenium网格

如果你是​​Selenium 3​​​用户,就会明白每次要在网格上执行自动化测试时启动​​Hub​​​和​​Node.jar​​​ 是多么痛苦。分布式测试执行都将随着​​Selenium 4​​​中优化的​​Selenium Grid​​发生质的变化。

在​​Selenium Grid 4​​​中,​​Hub​​​和​​Node​​​打包在一个​​jar​​​文件中。​​Selenium Grid 4​​​具有更具可扩展性和可追溯性的基础架构,支持四个进程——路由器、会话映射、分发服务器和节点。改进的​​GUI​​​和对​​Docker​​​的内置支持是测试人员在​​Selenium Grid 4​​中获得的一些额外好处。

Chrome 开发者工具

在​​Selenium 4​​​中,通过​​DevTools​​​接口原生支持​​Chrome DevTools Protocol (CDP)​​​。​​Chrome DevTools​​​界面的​​API​​将使问题诊断和页面的即时编辑变得更加容易。

​CDP​​​的原生支持将有助于更轻松地模拟​​Selenium 4​​​中的地理位置和网络条件。使用​​Selenium 4​​​,测试工程师可以通过在代码中模拟地理位置来测试为全球受众构建的​​Web 产品​​。同时,还可以检查产品在不同网络条件(例如 3G、4G 等)下的表现。

相对定位器

在​​Selenium 3​​​中,必须在适当的​​WebElement​​​上使用一系列​​findelement​​命令来定位其附近的元素。没有找到位于*/等上方/下方/右侧*的元素的捷径。

​Selenium 4 Alpha​​​中新引入的相对定位器(上方、下方、右边、左边和附近)有助于定位​​Web​​​元素相对于​​DOM​​中特定元素的位置。

More Thing

  • ​TakeElementScreenshot API​​​可以捕获页面上特定​​WebElement​​的屏幕截图。
  • ​newWindow API​​​的引入有助于简化新窗口(​​WindowType.WINDOW​​​)或选项卡(​​WindowType.TAB​​) 的创建。
  • 优化和加速调试过程。

就​​Selenium 3​​​与​​Selenium 4​​​的比较而言,​​Selenium 4 (Alpha)​​​的整体体验要优于​​Selenium 3​​。

Have Fun ~ Tester !

FunTester,一群有趣的灵魂,腾讯云&Boss认证作者,GDevOps官方合作媒体。