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

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

相关推荐
_WndProc2 小时前
【Python】方程计算器
开发语言·python
我的offer在哪里2 小时前
技术实战:用 Python 脚本高效采集与分析手机操作日志
开发语言·python·智能手机
weixin_438732102 小时前
ChromeDriver谷歌驱动下载
linux·chrome·selenium·自动化·mac·chrome devtools·chromedriver
智航GIS2 小时前
11.18 自定义Pandas扩展开发指南:打造你的专属数据分析武器库
python·数据分析·pandas
AI_56782 小时前
测试用例“标准化”:TestRail实战技巧,从“用例编写”到“测试报告生成”
java·python·测试用例·testrail
喵手2 小时前
Python爬虫零基础入门【第二章:网页基础·第1节】网页是怎么工作的:URL、请求、响应、状态码?
爬虫·python·python爬虫实战·python爬虫工程化实战·python爬虫零基础入门·网页基础
忧郁的橙子.3 小时前
26期_01_Pyhton判断语句
python
快乐小胡!3 小时前
【自动化测试】Selenium选择/定位元素的基本方法
python·selenium·测试工具
高洁013 小时前
数字孪生与数字样机的技术基础:建模与仿真
python·算法·机器学习·transformer·知识图谱