带你直观对比下Robotframework下的Playwright和Selenium
目录
传统方案:Robot Framework + SeleniumLibrary
现代方案:Robot Framework + Browser Library
对比内容:
打开浏览器,打开百度首页,校验页面的tite,关闭浏览器。
Playwright代码:
*** Settings ***
Library Browser
*** Test Cases ***
Starting a browser with a page
New Browser chromium headless=false
New Context viewport={'width': 1920, 'height': 1080}
New Page https://www.baidu.com/
Get Title == 百度一下,你就知道
Selenium代码:
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
Starting a browser with a page
Open Browser https://www.baidu.com/ chrome
Set Window Size 1920 1080
${title}= Get Title
Should Be Equal ${title} 百度一下,你就知道
[Teardown] Close Browser
安装命令
Playwright:
pip install robotframework-browser
Selenium:
pip install robotframework-selenium
对比数据:
整体看Playwright的执行速度要比Selenium好很多,以我们目前项目为例,使用的是selenium一次执行要9h,如果换成Playwright,可能只需要4~5个小时就搞定了,提效在百分之50左右。
| 工具名称 执行时间(s) | 第1次 | 第2次 | 第3次 | 第4次 | 第5次 | 第6次 | 平均 |
| Playwright | 4.305 | 3.107 | 3.139 | 4.146 | 4.0887 | 3.703 | 3.748 |
| Selenium | 7.051 | 6.143 | 6.833 | 6.489 | 6.720 | 6.715 | 6.659 |
传统方案:Robot Framework + SeleniumLibrary
-
库:
SeleniumLibrary -
底层驱动: Selenium WebDriver
-
浏览器控制: 通过各浏览器的 WebDriver 二进制文件(如 chromedriver, geckodriver)进行控制。
优点:
-
成熟稳定:社区庞大,资料丰富,遇到的问题基本都能找到解决方案。
-
兼容性广:支持几乎所有版本的浏览器。
-
思维惯性:对于从其他语言或框架转过来的 Selenium 用户来说非常熟悉。
缺点:
-
速度相对较慢:WebDriver 协议有一定的通信开销。
-
配置稍繁琐:需要管理和匹配浏览器与对应 WebDriver 的版本。
-
处理现代Web技术的局限性:对于 SPA、网络拦截、自动等待等场景,需要编写更多代码或依赖其他库。
现代方案:Robot Framework + Browser Library
这是由 Playwright 团队官方支持和维护的库,是 Playwright 在 Robot Framework 中的“原生”集成。
-
库:
robotframework-browser -
底层驱动: Playwright
-
浏览器控制: 直接通过 Playwright 的内置浏览器驱动,无需额外管理 WebDriver。
优点:
-
速度极快:Playwright 的架构设计使其通信效率远高于 WebDriver。
-
自动等待:智能地自动等待元素可操作,大大减少了在测试中手动添加
Wait Until ...关键字的必要。 -
强大的内置功能:
-
网络拦截:轻松模拟和捕获网络请求。
-
多标签页/上下文:原生支持,操作简单。
-
文件下载/上传:处理起来非常方便。
-
移动设备模拟:支持模拟不同设备和视口。
-
录制功能:可以使用
rfbrowser init生成录制脚本的代码,快速开始。
-
-
更简单的环境 setup:通过
rfbrowser init命令一键安装所有依赖(包括浏览器)。 -
可靠性高:Playwright 的等待机制和对现代 Web 应用的良好支持,使得测试更加稳定。
缺点:
-
相对较新:虽然发展迅速,但社区和资料总量目前还不如 Selenium 庞大。
-
浏览器版本限制:通常只支持与当前 Playwright 版本匹配的特定浏览器版本。
如何选择?
| 特性 | SeleniumLibrary | Browser Library (Playwright) |
|---|---|---|
| 性能 | 较慢 | 极快 |
| 可靠性/稳定性 | 良好,但需精心编写等待 | 极高,内置智能等待 |
| 易用性/配置 | 需要管理 WebDriver | 简单,一键初始化 |
| 现代Web特性支持 | 需额外代码 | 原生强大支持 |
| 社区与资料 | 非常丰富 | 快速增长中 |
| 移动端测试 | 支持(如 Appium) | 支持模拟和真机测试 |
迁移建议:
-
新项目:强烈推荐直接使用
Browser Library。你会获得更好的性能、开发体验和测试稳定性。 -
现有 Selenium 项目:
-
如果当前项目稳定且没有维护痛点,可以继续使用。
-
如果遇到稳定性、速度问题,或者需要利用 Playwright 的独特功能(如网络拦截),可以考虑逐步迁移。关键字虽然不同,但 Robot Framework 的抽象层使得迁移工作主要是重写关键字,逻辑可以保持不变。
-
后续也会持续更新介绍下Robotframework+Playwright环境的安装以及对应关键字的写法介绍。目前robotframework-browser这个库在网上的资料比较少,而且基本都是英文可以点个关注,后续我会慢慢更新。

浙公网安备 33010602011771号