前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Playwright 和 Selenium 的区别是什么?

Playwright 和 Selenium 的区别是什么?

作者头像
上海-悠悠
发布2023-08-22 11:10:49
4650
发布2023-08-22 11:10:49
举报
文章被收录于专栏:从零开始学自动化测试

前言

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

Playwright 和 Selenium 的区别

编号

功能

Playwright

Selenium

哪个更优秀

1

学习资料

相对少

Selenium

2

用户群体

出现的比较晚,用户量相对少

出现的早,用户量多

Selenium

3

支持语言

TypeScript、JavaScript、Python、.NET、Java

C#,Java,Perl,PHP,Python 和Ruby

Selenium

4

支持浏览器

Chromium(包含chrome, msedge)、WebKit 和 Firefox

IE(7, 8, 9, 10, 11),Firefox,Safari,Google Chrome,Opera,Edge等

Selenium

5

跨平台

Windows,Linux(只支持Ubuntu部分系统) ,Mac

Windows,Linux,Mac 都支持

Selenium

6

浏览器安装

命令行安装

自己安装

Playwright

7

浏览器驱动

不需要驱动

下载对应版本驱动

Playwright

8

启动速度

Playwright

9

context 环境隔离

Playwright

10

headless 无头模式

默认headless, 也可以设置GUI

默认GUI模式,也可以设置headless

Playwright

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

18

iframe

通过对象操作,不用切换

需要来回切换

Playwright

19

alert

默认监听自动关闭,可以异步监听

需要自己判断,无异步监听

Playwright

20

文件上传

监听文件上传时间,处理优雅

无法解决非input 上传

Playwright

21

文件下载

可以监听下载

只能设置浏览器默认位置

Playwright

22

多窗口标签

可以监听窗口事件,操作方便

需要来回切换

Playwright

23

事件监听

可以监听各种事件

无法监听

Playwright

24

捕获ajax 请求

可以捕获ajax 请求和 返回

无法捕获

Playwright

25

mock 功能

可以模拟想要的任何接口数据

无mock 功能

Playwright

26

断言

提供expect 丰富断言

需要自己封装webdriverwait.until方法,难度较大

Playwright

27

录制视频

录制用例视频

Playwright

28

trace 追踪

Playwright

29

断点调试

Playwright

30

录制

可以生成pytest用例

录制功能比较简单

Playwright

31

鼠标键盘操作

调用简单方便

导入模块,操作复杂

Playwright

32

base_url

可以添加全局base_url

无此功能

Playwright

33

接口测试

提供接口测试

无此功能

Playwright

34

grid 分布式

selenium-grid 分布式

Selenium

35

协议

websockt 协议,可以实时获取页面状态

http 协议,只能获取当时的状态,需自己轮询判断

Playwright

36

执行JavaScript

可以在page,iframe,元素对象执行JavaScript

只能在driver对象执行JavaScrip

Playwright

37

面试

要求playwright 比较少

问selenium 比较多

Selenium

38

学习难易程度

容易,无需封装,直接用

难度较大,需要封装

Playwright

总体打分Selenium 8分, Playwright 30 分,如果你是新手,毫不犹豫应该直接学playwright

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Playwright 和 Selenium 的区别
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档