news 2025/12/29 18:14:14

Playwright 和 Selenium的对比

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Playwright 和 Selenium的对比

前言

最近有不少同学问到 Playwright 和 Selenium 的区别是什么?
有同学可能之前学过 selenium 了,再学一个 playwright 感觉有些多余,可能之前有项目已经是 selenium 写的了,换成 playwright 需要时间成本,并且可能有未知风险。
也有同学之前可能没学过 selenium ,现在正准备入手一个web 自动化框架,但是对于选择selenium 和 playwright 犹豫不决,因为面试问selenium比较多,可能学了工作中也用不上,仅仅只是应付面试。
不管出于哪种原因,本篇详细分析 2 者的差异

Playwright 和 Selenium 的区别

编号功能PlaywrightSelenium哪个更优秀
1学习资料相对少Selenium
2用户群体出现的比较晚,用户量相对少出现的早,用户量多Selenium
3支持语言TypeScript、JavaScript、Python、.NET、JavaC#,Java,Perl,PHP,Python 和RubySelenium
4支持浏览器Chromium(包含chrome, msedge)、WebKit 和 FirefoxIE(7, 8, 9, 10, 11),Firefox,Safari,Google Chrome,Opera,Edge等Selenium
5跨平台Windows,Linux(只支持Ubuntu部分系统) ,MacWindows,Linux,Mac 都支持Selenium
6浏览器安装命令行安装自己安装Playwright
7浏览器驱动不需要驱动下载对应版本驱动Playwright
8启动速度Playwright
9context 环境隔离Playwright
10headless 无头模式默认headless, 也可以设置GUI默认GUI模式,也可以设置headlessPlaywright
11无痕模式默认无痕模式,对应测试很有帮助,对于爬虫用户可能访问页面不通过默认非无痕默认,爬虫用户特别喜欢Selenium
12页面等待wait_for_load_state可以精准等待commit,domcontentloaded,load,networkidle四种状态implicitly_wait等待页面加载完成Playwright
13元素定位提供多个内置定位器,定位方式更贴近业务,定位方式更多八大定位Playwright
14元素等待定位元素自带等待机制需要自己封装等待方法Playwright
15点击元素等操作会判断元素状态,出现位置,是否可点击智能判断需要自己封装webdriverwait.until方法,难度较大Playwright
16定位报错会人性化告诉你定位到几个元素,并推荐定位方式报错需要自己去猜谜,自己排除各种可能性Playwright
17元素不在当前屏幕会判断元素位置,自动滚动元素出现位置需要自己去判断滚动Playwright
18iframe通过对象操作,不用切换需要来回切换Playwright
19alert默认监听自动关闭,可以异步监听需要自己判断,无异步监听Playwright
20文件上传监听文件上传时间,处理优雅无法解决非input 上传Playwright
21文件下载可以监听下载只能设置浏览器默认位置Playwright
22多窗口标签可以监听窗口事件,操作方便需要来回切换Playwright
23事件监听可以监听各种事件无法监听Playwright
24捕获ajax 请求可以捕获ajax 请求和 返回无法捕获Playwright
25mock 功能可以模拟想要的任何接口数据无mock 功能Playwright
26断言提供expect 丰富断言需要自己封装webdriverwait.until方法,难度较大Playwright
27录制视频录制用例视频Playwright
28trace 追踪Playwright
29断点调试Playwright
30录制可以生成pytest用例录制功能比较简单Playwright
31鼠标键盘操作调用简单方便导入模块,操作复杂Playwright
32base_url可以添加全局base_url无此功能Playwright
33接口测试提供接口测试无此功能Playwright
34grid 分布式selenium-grid 分布式Selenium
35协议websockt 协议,可以实时获取页面状态http 协议,只能获取当时的状态,需自己轮询判断Playwright
36执行JavaScript可以在page,iframe,元素对象执行JavaScript只能在driver对象执行JavaScripPlaywright
37面试要求playwright 比较少问selenium 比较多Selenium
38学习难易程度容易,无需封装,直接用难度较大,需要封装Playwright

总体打分Selenium 8分, Playwright 30 分。

最后作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些软件测试的学习资料和我花了3个月整理的软件测试自学全栈,这些资料希望能给你前进的路上带来帮助。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/25 3:35:01

工业网关中hal_uart_transmit多设备轮询操作指南

工业网关中 HAL_UART_Transmit 多设备轮询实战指南:从原理到稳定通信 在工业自动化现场,你是否遇到过这样的场景? 一台嵌入式网关需要同时采集十几台设备的数据——电表、温湿度传感器、PLC、电机驱动器……它们大多通过 RS-485 接口以 Mo…

作者头像 李华
网站建设 2025/12/29 11:25:58

知网AIGC检测模块太强?试试这款同步降低查重率的神器。

2025年高校查重系统全面升级,知网、维普、万方等平台AIGC检测模块精准度高(数据来源:2025学术检测白皮书)。许多同学用AI辅助写作后,发现论文充满AI味:固定句式扎堆、词汇重复率高、逻辑衔接生硬... 最终导…

作者头像 李华
网站建设 2025/12/25 3:32:07

基于 51 单片机的电子式温度调节器

1. 引言 :电子式温度调节器的设计背景与意义 在家庭生活(如卧室供暖、鱼缸水温控制)、实验室(如试剂恒温存储)、工业生产(如小型设备温控)等场景中,温度稳定是保障舒适度、实验精度与…

作者头像 李华
网站建设 2025/12/25 3:32:01

基于单片机智能存柜系统设计

一、系统总体设计方案 本智能存柜系统以 “身份识别 - 柜门控制 - 状态监测 - 数据管理” 为核心逻辑,面向商场、超市、地铁站等公共场所,实现物品安全存储、便捷取物及柜格状态实时监控功能,替代传统钥匙式存柜,提升使用安全性与…

作者头像 李华
网站建设 2025/12/27 2:53:19

集成GPT+SoVITS双模型,这个语音合成工具太强了

集成GPTSoVITS双模型,这个语音合成工具太强了 在短视频、虚拟主播和AI配音日益普及的今天,人们不再满足于机械朗读式的语音合成。大家想要的是——像真人一样说话的声音,还能“长”得像自己。但传统TTS系统动辄需要几小时录音训练&#xff0c…

作者头像 李华
网站建设 2025/12/28 6:35:33

10、利用附加属性实现强大功能:拖放与滚动解析

利用附加属性实现强大功能:拖放与滚动解析 1. 附加属性的用途与UI辅助对象 附加属性在WPF中是非常强大的工具,可用于配置应用服务,使其表现出不同的行为。在设计新应用或控件时,可将应用服务作为附加属性暴露出来。 附加属性可被视为UI控件的辅助对象。以 RowVisibilit…

作者头像 李华