一、Playwright 简介

Playwright 是由微软开发的现代化端到端(End-to-End)测试框架,主要用于 Web 应用的自动化测试、UI 测试和浏览器自动化操作。它支持多种编程语言,并能高效控制 Chromium、Firefox 和 WebKit 等主流浏览器,具备强大的跨平台能力和灵活的 API 设计,已成为前端开发和测试领域的重要工具之一。

核心特点与优势
  1. 多浏览器支持

    • 原生支持 Chromium(包括 Chrome、Edge)、Firefox 和 WebKit(包括 Safari),可通过统一 API 实现跨浏览器测试。
    • 支持在不同浏览器环境中运行相同的测试用例,确保应用在多平台下的一致性。
  2. 跨平台兼容性

    • 可在 WindowsmacOS 和 Linux 系统上运行,适配不同开发和测试环境。
  3. 强大的自动化能力

    • 提供模拟用户操作的 API,如点击、输入、滚动、拖拽等,支持复杂交互场景的自动化测试。
    • 内置等待机制(如自动等待元素可见、网络请求完成),减少手动处理异步操作的复杂性。
  4. 高效的测试执行

    • 支持并行测试和无头模式(Headless)运行,提升测试效率。
    • 可通过浏览器上下文(Browser Context)实现多会话隔离,模拟不同用户场景(如多标签页、多用户登录)。
  5. 丰富的调试与诊断工具

    • 提供 Playwright Inspector 可视化调试工具,可实时查看测试执行过程。
    • 支持生成截图、视频录制和详细日志,便于定位测试失败原因。
  6. 多语言支持

    • 支持多种编程语言,包括 JavaScript/TypeScriptPythonC# 和 Java,适配不同开发团队的技术栈。
应用场景
  • 端到端(E2E)测试:模拟用户从打开网页到完成操作的全流程,验证应用功能的完整性。
  • UI 自动化测试:验证页面元素的交互逻辑、样式渲染和响应式设计。
  • 网页爬取与数据提取:自动化获取网页内容,适用于需要动态加载数据的场景。
  • 性能测试与监控:结合其他工具分析网页加载速度、资源消耗等性能指标。
  • 截图与网页生成:生成网页截图或 PDF,可用于报告生成或可视化测试。

二、playwright安装步骤

 环境准备
  • python环境:python3.7 (可以使用更高的版本,python3.7只支持playwright的1.35.0版本)官方下载位置:Download Python | Python.org
  • pycharm编译器:由 JetBrains 开发的一款专为 Python 编程设计的集成开发环境(IDE),使用十分便利。我是用的是社区版,官方下载位置:感谢您下载PyCharm!
环境安装注意事项
  • 安装顺序:先安装python3.7的环境,再去安装pycharm。
环境变量设置:
设置 PATH 变量(Python 命令全局可用)
  1. 右键点击「此电脑」→ 选择「属性」→ 点击「高级系统设置」→ 「环境变量」。
  2. 在「系统变量」中找到 Path,点击「编辑」。
  3. 添加 Python 安装目录(如 C:\Python39)和脚本目录(如 C:\Python39\Scripts)。
  4. 确认所有窗口,重启命令提示符(CMD)或 PowerShell。
playwright安装

在pycharm的Terminal运行以下命令:

pip install playwright

系统会自动适配当前python版本对应的最高版本的playwright,下载时间可能较长

在执行以下命令安装playwright对应的浏览器驱动,包含Chromium(包括 Chrome、Edge)、Firefox 和 WebKit 三个浏览器驱动

playwright install

之后可使用以下命令验证playwright安装是否成功

python -m playwright --version

三、启动playwright录制操作步骤

在pycharm的Terminal运行以下命令:

 python.exe -m playwright codegen http://127.0.0.1/login/login.html

在打开的谷歌浏览器中进行对应的操作,同时打开的窗口playwright inspector窗口则会生成对应的 python代码程序,例如:

from playwright.sync_api import Playwright, sync_playwright, expect


def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto("http://127.0.0.1/login/login.html")
    page.get_by_placeholder("请输入用户名").click()
    page.get_by_placeholder("请输入用户名").fill("zhang123456")
    page.get_by_placeholder("请输入密码").click()
    page.get_by_placeholder("请输入密码").fill("123456")
    page.locator("div").filter(has_text=" 登 录").nth(2).click()

    # ---------------------
    context.close()
    browser.close()


with sync_playwright() as playwright:
    run(playwright)

将这段代码保存到一个.py 文件中,执行这个新建立的 .py 文件,刚才的操作步骤则会自动在谷歌浏览器中执行

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐