自2018年发布以来,Selenium
框架的最新版本Selenium 4
已成为人们谈论的话题。Selenium 4
显而易见即将引领潮流,因为它拥有许多新功能和增强功能。虽然没有正式宣布Selenium 4
的最终版本,但用户和测试自动化爱好者已经开始通过下载Selenium 4 Alpha
版本进行探索和试验。
之前也分享过Selenium 4
的一些路边消息:
- Selenium 4 Java的最佳测试框架
- Selenium 4.0 Alpha更新日志
- Selenium 4.0 Alpha更新实践
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
。