2026-01-18 22:41:08 女排世界杯美国

Playwright Python 入门指南:安装、录制脚本与基础使用

最近公司有个要求,登录某几个网站并截图。每周都要截图上交,为了偷点懒,了解到了这个playwright工具。这个工具的录制功能泰裤辣,非常方便省事。几乎不需要写代码就实现了我想要的功能。

简单介绍一下:Playwright 是一款由微软开发的现代化浏览器自动化工具,支持 Chromium、Firefox 和 WebKit 三大浏览器引擎。其 Python 版本凭借简洁的 API 和强大的功能,成为自动化测试和爬虫开发的理想选择。

一、安装 Playwright Python

我是mac版本,直接用命令安装,未遇到问题。

1. 安装 Python 包

通过 pip 安装 Playwright 的 Python 包:

pip install playwright

2. 安装浏览器二进制文件

安装完成后,python版本注意,运行以下命令下载支持的浏览器(Chromium、Firefox、WebKit):

python3 -m playwright install

二、自动录制脚本:使用 playwright codegen

Playwright 提供了一个强大的工具 codegen,能够通过录制用户操作自动生成 Python 代码,非常适合快速生成测试脚本。

步骤 1:启动录制工具

在终端中运行以下命令,启动浏览器并开始录制:

python3 -m playwright codegen --target python -o 'exanple.py' -b chromium https:www.baidu.com

--target python:指定生成 Python 代码。

-o example.py:将生成的代码保存到 example.py 文件中。

步骤 2:操作浏览器

启动后,默认会打开一个 Chromium 浏览器和一个代码生成器窗口。

在浏览器中访问目标页面(如 https://www.baidu.com)。

执行操作(如输入文本、点击按钮等),所有操作会被实时转换为代码并显示在右侧窗口中。

步骤 3:保存生成的代码

关闭浏览器后,生成的代码会自动保存到 example.py 文件中。

示例生成的代码可能如下:

import re

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("https://www.baidu.com/")

page.locator("#kw").click()

page.locator("#kw").fill("playwright")

page.get_by_text("playwright自动化工具").click()

with page.expect_popup() as page1_info:

page.get_by_role("link", name="Web自动化测试之playwright:概述").click()

page1 = page1_info.value

# ---------------------

context.close()

browser.close()

with sync_playwright() as playwright:

run(playwright)

三、手动编写 Playwright 脚本示例

以下是一个简单的 Playwright Python 脚本,演示如何打开浏览器、搜索内容并截图:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:

# 启动 Chromium 浏览器(非无头模式)

browser = p.chromium.launch(headless=False)

page = browser.new_page()

# 访问百度并搜索关键词

page.goto("https://www.baidu.com")

page.fill("#kw", "Playwright 自动化测试")

page.click("#su")

# 等待结果加载并截图

page.wait_for_selector(".result-op", state="visible")

page.screenshot(path="search_results.png")

# 关闭浏览器

browser.close()

四、核心功能与场景

1. 自动等待机制

Playwright 自动等待页面元素加载完成,无需手动添加 time.sleep,提高脚本稳定性:

page.click("#submit") # 自动等待元素可点击后再执行

2. 模拟设备与网络

支持模拟手机设备或网络条件:

from playwright.sync_api import DeviceScaleFactorSelector

# 模拟 iPhone 12

iphone_12 = p.devices["iPhone 12"]

context = browser.new_context(**iphone_12)

3. 处理弹窗与框架

轻松处理弹窗、iframe 和文件下载:

# 监听弹窗

page.on("dialog", lambda dialog: dialog.accept())

# 操作 iframe

frame = page.frame(name="my-iframe")

frame.click("button")

4. 并行测试

通过多浏览器上下文实现并行操作:

context1 = browser.new_context()

context2 = browser.new_context()

page1 = context1.new_page()

page2 = context2.new_page()

五、适用场景

自动化测试:快速编写端到端(E2E)测试脚本。

爬虫开发:处理动态渲染页面(如单页应用)。

自动化操作:批量执行网页操作(如表单提交、数据抓取)。

六、总结

Playwright Python 通过以下特性成为自动化领域的佼佼者:

极简安装:一条命令即可安装浏览器和依赖。

智能录制:codegen 工具大幅降低脚本编写难度。

跨浏览器支持:轻松覆盖 Chrome、Firefox、Safari。

现代化 API:自动等待、网络拦截等功能开箱即用。

4种篮球跑位技巧,提升球商和场上表现!必看教程!
Citigroup Inc
top