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代码"**即可免费获取下载链接🔗
觉得有用的话,记得点赞👍支持一下~我们下期再见!
