FunTester Selenium4 前线快报

FunTester · 2021年07月14日 · 最后由 FunTester 回复于 2021年07月21日 · 3477 次阅读

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

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

尽管Selenium具有各种语言兼容性,如JavaC#PythonJavaScriptRubyPHP,本文基于Selenium 4.0.0-alpha-7版本进行分享和实践。

Selenium 4 不同之处

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

W3C 标准化

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

在底层,Selenium 4使用WebDriver W3C协议。这消除了Selenium 3JSON 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用户,就会明白每次要在网格上执行自动化测试时启动HubNode.jar 是多么痛苦。分布式测试执行都将随着Selenium 4中优化的Selenium Grid发生质的变化。

Selenium Grid 4中,HubNode打包在一个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 3Selenium 4的比较而言,Selenium 4 (Alpha)的整体体验要优于Selenium 3

Have Fun ~ Tester !

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


点击阅读阅文,查看 FunTester 历史原创集合

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 6 条回复 时间 点赞

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

这句话读起来怪怪的,是机翻?

TakeElementScreenshot API 可以捕获页面上特定 WebElement 的屏幕截图。

这个我记得 3 就可以实现吧

陈恒捷 回复

是我没检查到,抱歉。

我理解是获取某个元素的截图。而不是全部截图。暂时还没测试到这个 API。

FunTester 回复

element.saveScreenShot
我记得元素里有这个方法

强,我现在做性能,接触 UI 少了。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册