代码级教程|用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代码"**即可免费获取下载链接🔗

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

相关推荐
5G微创业17 分钟前
Python / Node.js 调用短视频去水印 API 完整示例(含 SDK)
python·node.js·音视频·api·sdk·短视频
phltxy39 分钟前
LangGraph智能租房助手实践
大数据·人工智能·python·深度学习·语言模型·langchain
码银1 小时前
放弃了豆包,我使用Python做了一个桌面宠物
python·microsoft·宠物
测功机之家1 小时前
国内口碑好的测功机公司找哪家
python·物联网
xlrqx1 小时前
2026年平顶山家电清洗培训设备是否齐全依据多因素来判断
大数据·python
summer_du1 小时前
Qdrant
人工智能·python
logomister设计公司阿燕1 小时前
华为商标“减法哲学”:极简主义如何成就全球品牌?
python·华为
萧青山2 小时前
2026国标合规:Agent Loop合规设计模式的6种循环架构(GB/Z 185.6+Python)
python·设计模式·agent loop·gb/z 185·国标合规
zzzzzz3102 小时前
我用 AI 编程半年,这 5 个 Prompt 技巧让我效率翻倍
python·机器学习·编程语言
Scott9999HH10 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python