写点什么

Playwright 基础入门篇 | 环境搭建与首个自动化脚本

作者:测试人
  • 2025-08-28
    北京
  • 本文字数:1616 字

    阅读完需:约 5 分钟

一、Playwright 简介与核心优势

Playwright 是微软开源的现代化 Web 自动化工具,支持 Chromium(Chrome/Edge)、Firefox、WebKit(Safari) 三大浏览器引擎,提供跨平台(Windows/macOS/Linux)和跨语言(Python/JS/Java/C#)的统一 API。其核心优势包括:

  • 智能等待机制:自动检测元素可交互性(如点击、输入),减少因网络延迟导致的测试失败 。

  • 录制与调试工具:内置 codegen 实时生成操作脚本,大幅降低学习成本 。

  • 真移动端模拟:内置设备描述符(如 iPhone 13),无需额外配置即可模拟手机环境 。

二、环境搭建(10 分钟搞定!)

1. 安装 Python 环境(需 3.8+)

# 检查 Python 版本python --version# 安装 Playwright 库pip install playwright# 安装浏览器驱动(自动下载 Chromium/Firefox/WebKit)playwright install
复制代码

避坑提示:国内用户可通过镜像加速下载 :

set PLAYWRIGHT_DOWNLOAD_HOST=https://npmmirror.com/mirrors/playwrightplaywright install
复制代码

2. 验证安装

运行以下脚本,成功输出浏览器标题即表示环境就绪:

from playwright.sync_api import sync_playwright
with sync_playwright() as p: browser = p.chromium.launch(headless=False) # 显示浏览器界面 page = browser.new_page() page.goto("https://playwright.dev") print("页面标题:", page.title()) # 应输出:Fast and reliable end-to-end testing browser.close()
复制代码

✅ 成功标志:浏览器自动打开并显示 Playwright 官网,控制台打印正确标题 。

三、首个自动化脚本:网页导航与截图

脚本目标

访问 https://example.com,保存全页面截图并输出标题。

from playwright.sync_api import sync_playwright
def run(): with sync_playwright() as p: # 启动浏览器并访问网页 browser = p.chromium.launch(headless=False) page = browser.new_page() page.goto("https://example.com") # 保存全屏截图(自动等待页面加载完成) page.screenshot(path="example.png", full_page=True) print("页面标题:", page.title()) # 输出:Example Domain browser.close()
if __name__ == "__main__": run()
复制代码

效果说明

  1. 自动打开浏览器访问 example.com。

  2. 生成全页截图 example.png。

  3. 控制台输出标题 "Example Domain" 。

四、避坑指南与调试技巧

浏览器启动失败

  • 确保已执行 playwright install 安装浏览器内核。

  • 若报权限错误,尝试以管理员身份运行终端 。

截图不完整

  • 添加 full_page=True 参数捕获完整页面。

  • 使用 page.wait_for_load_state("networkidle") 确保资源加载完成 。

调试神器

  • 脚本录制:playwright codegen https://example.com 操作浏览器自动生成代码,适合快速原型设计 。

  • 执行追踪:通过 Trace Viewer 回放操作过程(含网络请求与 DOM 快照):

context = browser.new_context()context.tracing.start(screenshots=True, snapshots=True)# ...执行操作...context.tracing.stop(path="trace.zip")# 查看日志:npx playwright show-trace trace.zip
复制代码

五、同步 vs 异步模式选择


import asynciofrom playwright.async_api import async_playwright
async def main(): async with async_playwright() as p: browser = await p.chromium.launch() page = await browser.new_page() await page.goto("https://example.com") await page.screenshot(path="async_example.png") await browser.close()
asyncio.run(main())
复制代码

六、总结与下一步

1 小时成果清单

  • 完成跨平台环境搭建

  • 首个导航+截图脚本

  • 掌握同步/异步模式选择

  • 学会使用录制与调试工具

下一步学习

  • 元素定位进阶:文本/CSS/XPath/语义化定位实战

  • 框架集成:用 Pytest 管理测试用例

  • CI/CD 流水线:GitHub Actions 自动执行测试 。

立即行动:10 分钟内生成你的第一个自动化脚本!

用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
Playwright基础入门篇 | 环境搭建与首个自动化脚本_测试人_InfoQ写作社区