UI自动化 - playwright跟selenium对比

发布时间:2026/7/15 8:18:43

UI自动化 - playwright跟selenium对比
playwright是微软在 2020 年初开源的新一代自动化测试工具其功能和 selenium 类似都可以驱动浏览器进行各种自动化操作。selenium和playwright哪个更好用该选择哪个作为自动化工具可以看以下内容支持语言先说这两个框架支持的编程语言虽然selenium比playwright支持更多的语言但是对测试来说只要能支持python和Java对我们来说应该就等于没有区别了环境搭建playwright支持主流浏览器Chrome、Firefox、Safari而selenium则支持几乎所有的主流浏览器。在这一点上selenium是比playwright要强的但是playwright有一点是selenium没法比的就是环境搭建的方便程度。selenium要想成功运行得自己手动去下载对应浏览器的driver驱动文件再放到对应的文件夹地址中配置环境变量才可以成功运行这一步会拦住很多初学者甚至有人找驱动文件的下载地址都要找半天。而且驱动文件还必须找到正确的版本才行如果版本不一样还跑不起来但是playwright就把这个过程简化到了极致你只需要运行两行命令就可以完成环境的搭建。1、先下载playwright的第三方包pip install playwright2、下载第三方包完成后运行以下命令下载驱动playwright install性能从实际使用效果来看playwright的性能是碾压selenium的我在使用selenium的框架跑测时加载js文件要耗费数十秒导致每次刷新或者跳转页面都会浪费很多时间而playwright没有这个问题使用的时候就跟我平时正常浏览网页一样的速度等待的不同selenium的等待需要通过隐式等待全局设置或者单独写比较复杂的显示等待语句。WebDriverWait(browser,second25).until(EC.presence_of_element_located((By.CLASS_NAME, contentBox)), ) //显示等待的例子playwright可以在查找元素的时候通过timeout的参数比隐式等待的全局设置更灵活。但是缺点是playwright本身的语法是不支持显示等待的需要自己单独写一个方法来实现显示等待的效果self.page.wait_for_selector(timeouttimeout*1000,selectorselector,**kwargs) //查找元素通过timeout参数设置等待时间的例子api1、虽然selenium的性能是比playwright要差的但是作为一个老牌的自动化框架他api支持的功能是比playwright要丰富的基本能涵盖浏览器的所有操作。2、虽然api丰富但是本身api的操作比较复杂繁琐相对之下playwright会简洁一些用起来更顺手。社区生态两个框架现在都能查到详细的资料通过chatgpt也能解决你遇到的绝大部分问题这一点两个框架都是很强大的定位方式playwright通过简化定位方式让你写代码的时候更加顺手你只需要填入selector定位表达式playwright会自动帮你识别定位方法selenium在定位元素的时候必须传入定位方法如果传错就会定位失败但是有一个缺点就是playwright的单元素定位和多元素定位是要用不同的写法的。如果使用单元素定位的写法定位到多个元素时会报错并行测试playwright内置并行测试的功能支持多浏览器上下文。且playwright支持使用协程的写法selenium需要借助 Selenium Grid 或第三方工具如 TestNG来实现并行测试。selenium不支持协程总的来说对于初学者或者小的项目来说用playwright是一个更好的选择它会更加灵活简便。如果是对功能要求较高的话可以使用selenium它提供的api更加全面

相关新闻

室外监控摄像头推荐:2026年户外安防选购指南,这四款总有一款适合你

室外监控摄像头推荐:2026年户外安防选购指南,这四款总有一款适合你

2026/7/15 8:08:43

院子、果园、鱼塘、工地、仓库……室外监控的需求日益增长,但选购难度也远超室内摄像头。 据「解密优选」统计,超过70%的用户在选购室外监控时踩过坑: 买回来才发现不防水,淋一场雨直接报废;装好后发现没网没电&#…

互联网大厂 Java 求职面试:燕双非的搞笑旅程与技术深度探讨

互联网大厂 Java 求职面试:燕双非的搞笑旅程与技术深度探讨

2026/7/15 8:08:43

互联网大厂 Java 求职面试:燕双非的搞笑旅程与技术深度探讨在这篇文章中,我们将通过一场搞笑而严肃的面试,带您深入了解互联网大厂 Java 求职者的面试场景。面试官是一位严肃认真的技术专家,而候选人燕双非则是一位幽默风趣的程序…

3步实现Switch手柄在Windows电脑的完美适配

3步实现Switch手柄在Windows电脑的完美适配

2026/7/15 8:08:43

3步实现Switch手柄在Windows电脑的完美适配 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.com/gh_mirrors/be/BetterJ…

2小时掌握Pandas数据分析:从数据处理到可视化实战

2小时掌握Pandas数据分析:从数据处理到可视化实战

2026/7/15 10:08:49

在日常数据处理工作中,你是否遇到过这样的困扰:Excel处理大量数据时卡顿严重,SQL查询结果需要进一步分析时操作繁琐,或者需要从多个数据源整合信息时手动操作效率低下?这些问题都可以通过Python的Pandas库得到完美解决…

嵌入式没有 FPU 怎么算小数?用“分和元“讲透定点数(用分和元讲透(附代码))

嵌入式没有 FPU 怎么算小数?用“分和元“讲透定点数(用分和元讲透(附代码))

2026/7/15 10:08:49

一句话: Cortex-M3 没有硬件浮点,float 算一次几十条指令。定点数用整数存小数——像用"分"代替"元"——加减直接算,乘法多一步移位。3 条指令干完 float 几十条指令的活。适合谁读:适合嵌入式开发者、单片机初学者及遇到…

设计状态机时,先画转换条件,再画状态

设计状态机时,先画转换条件,再画状态

2026/7/15 10:08:49

一句话: 很多人设计状态机先枚举"有哪些状态"再想"怎么转换",容易漏掉转换路径。反过来:先画条件矩阵——每个条件组合下应该发生什么——状态自然浮现。适合谁读:适合嵌入式开发者、单片机初学者及遇到类似问题的工程师…

改完Keil工程文件被缓存覆盖?——uvprojx编辑的进阶四坑

改完Keil工程文件被缓存覆盖?——uvprojx编辑的进阶四坑

2026/7/15 10:08:49

一句话: 上一篇《Keil工程XML编辑5次失败》讲了基本流程。本文进阶——Perl 静默失败的根因、Keil 缓存回写的时间点、uvoptx 里有 uvprojx 没有的东西、sed 一刀切误伤活跃代码。如果你不止删文件,还要批量改工程配置,这四条会帮你少踩一轮坑。 适合谁读…

KAN网络:新一代可解释神经网络架构解析

KAN网络:新一代可解释神经网络架构解析

2026/7/15 10:08:49

1. KAN网络是什么?为什么它能引发热议?KAN(Kolmogorov–Arnold Networks)是2024年由MIT、加州理工等机构提出的全新神经网络架构。它的核心创新点在于对传统MLP(多层感知器)做了一个看似简单却影响深远的改…

XHRefreshControl性能优化技巧:让你的iOS应用流畅如丝

XHRefreshControl性能优化技巧:让你的iOS应用流畅如丝

2026/7/15 9:58:49

XHRefreshControl性能优化技巧:让你的iOS应用流畅如丝 【免费下载链接】XHRefreshControl XHRefreshControl 是一款高扩展性、低耦合度的下拉刷新、上提加载更多的组件。 项目地址: https://gitcode.com/gh_mirrors/xh/XHRefreshControl XHRefreshControl是一…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/14 10:03:09

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/13 20:43:19

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/15 0:26:43

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

【LINUX】驱动

【LINUX】驱动

2026/7/15 0:08:14

【LINUX驱动】【字符设备】【中断】【Platform】【网课 设备树】【GPIO】【PINCTRL】【INPUT】【IIC】【SPI】【网络驱动】【屏幕驱动】【一 设备树】【二 内核模块编译】【三 基本驱动框架】【四 Platform总线设备驱动框架】【五 驱动子系统】【六 综合】

【1982-2026】全国高精度建筑轮廓|村级精度|SHP矢量

【1982-2026】全国高精度建筑轮廓|村级精度|SHP矢量

2026/7/15 0:08:14

🔍 数据简介 本次分享1982-2026年全国村级精度建筑轮廓矢量数据,覆盖全国各省市区县,到村级别精细,为2026年最新实时采集成果,非网传仅60/77个城市的老旧数据。 数据含带高度/不带高度双版本,单体建筑边界精…

【1975-2026】全国水系水路数据|河流/水库/运河|SHP矢量

【1975-2026】全国水系水路数据|河流/水库/运河|SHP矢量

2026/7/15 0:08:14

🔍 数据简介 本次分享1975-2026年全国高精度水系水路矢量数据,覆盖全国全域,包含河流、水系、水库、运河、湿地、冰川、沟渠等全类别水文要素。 数据集包含双层矢量图层,字段分类清晰、要素齐全,支持2013-2026逐年完整…