【Playwright】比较Selenium和Playwright

这篇具有很好参考价值的文章主要介绍了【Playwright】比较Selenium和Playwright。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

昨天的文章发出来以后, 有测试的小伙伴让田老师说说Playwright和Selenium的区别。

其实这两个框架本身都非常强大,且都旨在自动化 Web 应用程序测试,但它们在方法和功能上有所不同。在此博客中,田老师将试图站在一个公允的态度上,比较 Selenium 和 Playwright,以帮助您确定哪个框架适合您的测试需求。

1 Introduction 概述

Selenium 已经存在了十多年,并在行业中得到广泛应用。它是一个支持多种编程语言和平台的开源测试自动化框架。 Selenium 使用 WebDriver 来自动化 Web 浏览器,允许开发人员编写与网页和元素交互的测试。

而Playwright 是由 Microsoft 开发的较新的框架。它旨在简化为 Web 应用程序编写端到端测试的过程。 Playwright 支持多种编程语言和平台,并且可以在无头或非无头模式下自动化 Web 浏览器。与 Selenium 不同,Playwright 提供了一个高级 API,可以简化编写测试的过程。

2 Features 特性

Selenium 和 Playwright 都具有相似的特性,例如支持多种编程语言、跨浏览器测试和屏幕截图。但是,Playwright 有一些 Selenium 所没有的特性:

2.1 Multiple Browsers 多浏览器

Playwright 支持多种网络浏览器内核,包括 Chromium、Firefox 和 WebKit。 Selenium 也支持多种浏览器,但仅限于 Chrome、Firefox、Safari、Internet Explorer 和 Edge。

在这里要注意他们之间的区别,一个是浏览器内核一个是浏览器,也就是说,在Playwright上, Chrome、Opera以及新版的Edge浏览器在画面表现上基本是一致的。

我们都知道程序员的噩梦IE, 不止是IE,我们所有的现在正在用的浏览器有一天都会成为所谓的“旧版本”,对于这些特殊的版本,Playwright也提供了executablePath进行支持。

2.2 Cross-Platform Testing 跨平台测试

Selenium 和 Playwright 都能够在多个平台上运行测试,包括 Windows、macOS 和 Linux。但是,这两个框架在处理跨平台测试的方式上存在一些差异。

Selenium 依赖于 WebDriver 协议,这是一种用于自动化 Web 浏览器的标准 API。每个浏览器供应商都提供自己的 WebDriver API 实现,这有时会导致跨平台的行为差异。这意味着在使用 Selenium 时,您可能需要编写特定于平台的代码来处理这些差异。例如,您可能需要针对不同的浏览器或操作系统使用不同的选择器或等待时间。

Playwright 提供了跨所有平台的一致 API,使得编写跨平台测试变得更加容易。 Playwright 抽象出底层浏览器的实现细节,并提供一个 API 来与所有支持的浏览器进行交互。这意味着您可以编写相同的测试代码并期望它在所有平台上表现一致。

Playwright 在跨平台测试中的另一个优势是它在所有平台上都支持 headless 和 non-headless 模式。这允许您在图形用户界面不可用的平台上的无头环境中运行测试。

与 Selenium 相比,Playwright 为跨平台测试提供了更加一致和简化的体验。它抽象出底层浏览器的实现细节,并提供一个单一的、统一的 API 来与所有支持的浏览器进行交互。这可以在编写测试时节省您的时间和精力,并确保您的测试在所有平台上的行为一致。

2.3 Automatic Waiting 自动等待

Playwright 具有内置的自动等待功能,这意味着它会等待元素出现在页面上,然后再与它们交互。 Selenium 要求开发人员在他们的测试中添加明確的等待设定,以处理等待问题。

当然, Playwright在等待上也并不是绝对完美的。 田老师在实际自动化测试代码中,也涉及到手动等待的问题。

2.4 Syntax 语法/代码书写

Selenium 使用低级 API,需要开发人员编写更多代码才能与网页上的元素进行交互。例如,要使用 Selenium 单击按钮,开发人员需要定位按钮元素,然后调用 click() 方法。这是一个例子:

from selenium import webdriver

browser = webdriver.Chrome()
browser.get("https://www.example.com")
button = browser.find_element_by_id("button")
button.click()

Playwright 提供了一个高级 API,可简化与网页上的元素交互的过程。例如,要使用 Playwright 单击按钮,开发人员可以直接在元素对象上使用 click() 方法。这是一个例子:

from playwright.sync_api import Playwright, sync_playwright

with sync_playwright() as playwright:
    browser = playwright.chromium.launch()
    page = browser.new_page()
    page.goto("https://www.example.com")
    button = page.locator("#button")
    button.click()
    browser.close()

2.5 Performance 效率

在性能方面,Playwright 比 Selenium 更快。 Playwright 使用单个浏览器实例来运行测试,减少了创建和销毁浏览器实例的开销。另一方面,Selenium 为每个测试创建一个新的浏览器实例,这会减慢测试执行速度。

3 结论

总体而言,Selenium 和 Playwright 之间的选择取决于您的测试需求和偏好。如果您已经在使用 Selenium 并且熟悉它的语法,那么坚持使用 Selenium 可能会更容易。但是,如果您正在寻找一种更现代、更高效的框架,它提供简化的语法并支持更多的浏览器和平台,那么 Playwright 可能是更好的选择。

这里田老师要强调的一件事是:Playwright 是一个比 Selenium 更新的框架,可能没有那么多的资源或来自社区,尤其是中文社区的支持。 然而,鉴于它与微软的关系,它可能会在未来几年继续发展并受到欢迎。

总之,Selenium 和 Playwright 都是用于 Web 应用程序测试的出色框架,并且各有优缺点。您可以根据功能、语法和性能来决定哪一个最适合您的需求。文章来源地址https://www.toymoban.com/news/detail-444617.html

到了这里,关于【Playwright】比较Selenium和Playwright的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Playwright 和 Selenium的对比

    最近有不少同学问到 Playwright 和 Selenium 的区别是什么? 有同学可能之前学过 selenium 了,再学一个 playwright 感觉有些多余,可能之前有项目已经是 selenium 写的了,换成 playwright 需要时间成本,并且可能有未知风险。 也有同学之前可能没学过 selenium ,现在正准备入手一个web

    2024年02月05日
    浏览(69)
  • 干货!Playwright架构与Selenium 架构对比

    在 Web 测试自动化方面,Selenium 多年来一直是行业的主导工具。但是,市场上还有许多其他自动化测试工具。Playwright是一种较新的工具,已经越来越受欢迎。网上有很多文章对二者进行对比,今天我从二者的架构角度进行一下对比分析!关于二者在其他方面的区别,我会在后

    2024年02月12日
    浏览(34)
  • Playwright 和 Selenium 的区别是什么?

    最近有不少同学问到 Playwright 和 Selenium 的区别是什么? 有同学可能之前学过 selenium 了,再学一个 playwright 感觉有些多余,可能之前有项目已经是 selenium 写的了,换成 playwright 需要时间成本,并且可能有未知风险。 也有同学之前可能没学过 selenium ,现在正准备入手一个web

    2024年02月08日
    浏览(35)
  • 爬虫框架 Selenium Pyppeteer Playwright Luna对比

    爬虫框架 Selenium Pyppeteer Playwright Luna 对比 1. Selenium : 经典且落后、特征明显、特别容易被检测出来。 2. Pyppeteer :轻量级工具,功能稍强。 nice、但是一样容易被检测、但是稍微好一点点。 3. Playwright :强大且全面的自动化框架。 可以说还行、各方面比较不错,无论多语言环

    2024年02月05日
    浏览(61)
  • Playwright 结合 Selenium Grid - 1.windows 环境使用教程

    Playwright 可以连接到运行 Selenium 4 的 Selenium Grid Hub 来启动 Google Chrome 或 Microsoft Edge 浏览器,而不是在本地机器上运行浏览器。 打开selenium官方https://www.selenium.dev/downloads/下载Selenium Server (Grid) 目前最新版本4.16.1 下载地址https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.16.0

    2024年01月22日
    浏览(37)
  • Playwright vs Selenium:最好用的自动化测试框架?

    目录 引言 文心一言:Playwright 极简教程 ChatGPT : Playwright极简教程 Playwright 特性说明 安装 编写测试 运行测试 固定装置(Fixtures) 总结 很长时间以来,Selenium是QA工程师寻求测试自动化解决方案的首选测试框架。它能够测试任何浏览器(这在IE浏览器的统治时期尤其重要)和任

    2023年04月17日
    浏览(41)
  • 嗨,各位Python程序员,放弃selenium,试试年轻的Playwright如何?

    上一篇博客我们首次接触年轻的自动化模块 playwright ,惊讶于其代码录制功能,今天咱们接着学习一下,其 API 相关知识。 正式学习前,先把基础示例代码呈现给大家。 注意上述代码使用的不是 无头浏览器 ,运行代码得到请求站点的标题,下面继续对代码进行扩展。 通过浏

    2023年04月09日
    浏览(34)
  • Python OCR 使用easyocr库将图片中的文章提取出来

    EasyOCR是一个开源的Python库,专注于提供易用而准确的文字识别功能。它基于深度学习技术,使用了一种端到端的方法,能够在多种语言和字体下进行稳定的识别。 希望能写一些简单的教程和案例分享给需要的人 Python 3.10.12 系统: ubuntu 22.04 接下来我分享如何使用Python的easy

    2024年02月11日
    浏览(45)
  • python selenium playwright库使用教程 破解网页防止开发者模式 截取数据请求 隐藏chrome

    下载 chromedriver的版本一定要与Chrome的版本一致,不然就不起作用。 有两个下载地址: 1、 http://chromedriver.storage.googleapis.com/index.html 2、 CNPM Binaries Mirror 当然,你首先需要查看你的Chrome版本,在浏览器中输入chrome://version/  放chromedriver在chrome安装目录  默认目录一般为:C:Pro

    2023年04月25日
    浏览(44)
  • test ui-01-UI 页面测试 Selenium/Appium/Cypress/TestCafe/Playwright/WebDriverIO/Nightwatch/Puppeteer/Jest

    UI测试(用户界面测试)是软件测试中的一个重要方面,其主要目的是确保用户界面的正常运作,并验证用户可以按照设计的方式与应用程序进行交互。 UI测试通常涉及检查图形用户界面(GUI)元素的正确性、响应性和用户体验等方面。 在测试过程中,测试人员会模拟用户与

    2024年01月17日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包