代码级教程|用Playwright实现Web自动化测试:从零到录制生成脚本

2025年都说是AI元年,整个互联网行业先后迎来了DeepSeek,Claude Code,Gemini等AI大模型,随之让搜索引擎,程序员,绘画设计等从业人员感受到了"科技的力量"。自动化测试也迎来了快速迭代!

以前小编总安利那套 Selenium+Pytest+Allure+Jenkins 经典组合,但隐隐感觉有点落伍了。毕竟在我们部门搞了这么久的自动化,真正在用的也就我和另一个同事,其他测试小伙伴依然坚持手工作战......🤐

就在这时,突然想起一个很早就知道但一直没深入研究和使用的工具------Playwright。它虽然还没实现真正的"全自动"(那不然小编就要失业了😂),但近几年越来越智能,用的人也越来越多。是时候向小伙伴们推荐这个"半自动化神器"了!

介绍

Playwright 是微软开发的 用于Web应用自动化测试的一个框架,支持JavaScript/TypeScript, Python, Java, C# 等多种语言开发

Playwright 有个巨大的优点:自带浏览器和驱动,不用折腾环境!而且自带浏览器不会自动更新。再也不用担心某天醒来脚本全挂,排查后发现原来是浏览器升级的痛苦了(简直是福音啊⭐️)

安装

1、安装 Playwright

python 复制代码
pip install playwright

如图:

小编已经安装过了,所以提示已经存在21.2.4版本,但最新版是25.3版本(不用盲目追新,够用就行~)

2、安装浏览器

安装全部浏览器

python 复制代码
playwright install 

推荐只安装一个常用的,比如Chrome:

python 复制代码
playwright install chrome

输入密码,会自动安装

2.1、错误一

报错:zsh: command not found: playwright

原因:未找到playwright命令

解决:使用python -m playwright install chrome

2.2、错误二

报错:Failed to install browsers Error: Invalid installation targets: 'Chrome'. Expecting one of: chromium, chromium-headless-shell, chromium-tip-of-tree-headless-shell, chrome, chrome-beta, msedge, msedge-beta, msedge-dev, bidi-chromium, firefox, webkit

原因:浏览器名称错误

解决:严格区分大小写,Chrome改成chrome

python -m playwright install chrome

3、跑个测试

贴一段简单的代码,打开百度搜一下"大飞记Python"

python 复制代码
from playwright.sync_api import sync_playwright

# 使用 Playwright 打开百度
with sync_playwright() as p:
    # 启动webkit浏览器(headless=False:显示浏览器窗口)
    browser = p.webkit.launch(headless=False)
    # 创建新页面
    page = browser.new_page()
    # 访问百度
    page.goto("https://www.baidu.com")
    # 在搜索框并输入"大飞记Python"
    page.locator(".chat-input-scroll-style").fill("大飞记Python")
    # 点击"搜索按钮"
    page.locator("//*[text()=' 百度一下 ']").click()
    # 等待页面加载
    page.wait_for_load_state("networkidle")
    # 截图保存
    page.screenshot(path="大飞记Python截图.png")
    # 关闭浏览器
    browser.close()

看到浏览器启动,并成功保存截图即为成功~恭喜,环境搞定!

4、懒人1分钟生成脚本

当然,仅仅是这样还不足以小编推荐这款工具了!

我们甚至可以连代码都不用写,直接使用Playwright 自带的"录制"功能,实现1分钟自动生成脚本

"录制"功能命令

python 复制代码
playwright codegen

注意:默认使用 Chromium,如果想用其他浏览器,可以加上参数:

python 复制代码
playwright codegen --browser=webkit https://www.baidu.com

或者(Mac适用):

python 复制代码
python -m playwright codegen --browser=webkit https://www.baidu.com

这时会弹出2个窗口

  • 左边是浏览器,平时点击、输入的地方

  • 右边实时生成对应的代码

在左侧浏览器中打开百度,输入"大飞记Python",最后关闭浏览器的操作

这时右侧的自动化代码已经生成完毕,我们将生成的代码复制到PyCharm中

右击简单运行一下,成功!

代码如下

当然:类似page.get_by_role("textbox", name="越南球员范理德被红牌罚下").fill("大飞记Python")这种查找元素的方法是相当不推荐小伙伴们用的

python 复制代码
import re
from playwright.sync_api import Playwright, sync_playwright, expect


def run(playwright: Playwright) -> None:
    browser = playwright.webkit.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://www.baidu.com/")
    page.get_by_role("textbox", name="越南球员范理德被红牌罚下").fill("大飞记Python")
    page.get_by_role("button", name="百度一下").click()

    # ---------------------
    page.wait_for_timeout(3000)  # 等待3秒
    context.close()
    browser.close()


with sync_playwright() as playwright:
    run(playwright)

小编从 录制+写代码+运行脚本,全程不到3分钟。Playwright最大的魅力就是简单,特别适合快速上手自动化测试的小伙伴

如果你对上述代码感兴趣,**后台回复"play代码"**即可免费获取下载链接🔗

觉得有用的话,记得点赞👍支持一下~我们下期再见!

相关推荐
AI探索者20 小时前
LangGraph StateGraph 实战:状态机聊天机器人构建指南
python
AI探索者20 小时前
LangGraph 入门:构建带记忆功能的天气查询 Agent
python
FishCoderh21 小时前
Python自动化办公实战:批量重命名文件,告别手动操作
python
躺平大鹅21 小时前
Python函数入门详解(定义+调用+参数)
python
曲幽1 天前
我用FastAPI接ollama大模型,差点被asyncio整崩溃(附对话窗口实战)
python·fastapi·web·async·httpx·asyncio·ollama
两万五千个小时1 天前
落地实现 Anthropic Multi-Agent Research System
人工智能·python·架构
哈里谢顿1 天前
Python 高并发服务限流终极方案:从原理到生产落地(2026 实战指南)
python
用户8356290780512 天前
无需 Office:Python 批量转换 PPT 为图片
后端·python
markfeng82 天前
Python+Django+H5+MySQL项目搭建
python·django
GinoWi2 天前
Chapter 2 - Python中的变量和简单的数据类型
python