自 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 官方合作媒体。
- FunTester 测试框架架构图初探
- FunTester 分享会第二期视频回顾
- 初遇 Postman,SayHi 的三种方式
- 未来的神器 fiddler Everywhere
- JMeter 吞吐量误差分析
- Selenium 自动化:代码测试与无代码测试
- 物联网测试
- Jmeter 基于 webscoket 测试后台服务接口实战
- 绑定手机号性能测试
- Java 多线程编程在 JMeter 中应用
- 电子书网站爬虫实践
- Socket 接口异步验证实践
- Groovy 在 JMeter 中处理 cookie
点击阅读阅文,查看 FunTester 历史原创集合