零基础也能玩转Playwright!手把手教你写出第一个自动化脚本
本文为编程新手提供了一份10分钟快速上手Playwright自动化测试的实用指南。从环境搭建到第一个截图脚本,再到使用Codegen自动生成代码,教程以Python为例,用通俗易懂的语言和代码示例,帮助零基础用户快速掌握这一现代Web测试工具。文章还包含常见问题解答和进阶学习方向,让初学者能立即动手实践并持续提升测试技能。
自动化测试听起来是不是有点高大上?如果你是个完全的编程小白,可能会觉得“写代码测试网页”像是遥不可及的技能。别担心!今天我们就用最简单的方式,带你用Playwright——这个席卷测试圈的“神器”——写出你的第一个自动化测试脚本。零基础也能上手,跟着这篇教程,10分钟让你从“小白”变“小能手”!
为什么选择Playwright?
Playwright是微软开发的一款开源自动化测试工具,专为现代Web应用设计。相比老牌工具Selenium,它速度更快、配置更简单,还能轻松搞定跨浏览器测试和移动端模拟。无论你是想测试网页功能、抓取数据,还是自动执行重复操作,Playwright都能帮你省时省力。
最重要的是,Playwright对新手超级友好!它自带代码生成工具,文档清晰,即使你没写过代码,也能快速上手。接下来,我们就一步步带你完成第一个Playwright脚本,用Python语言编写。
准备工作:搭建环境
别被“环境”两个字吓到,Playwright的安装过程简单到飞起。我们以Python为例(因为Python语法简单,适合新手)。跟着以下步骤走,3分钟搞定:
- 安装Python
如果你还没安装Python,去Python官网下载最新版本(建议3.8或以上),安装后在终端运行以下命令检查:
python --version
pip --version
看到版本号输出就说明安装成功。
- 安装Playwright
打开终端,创建一个新文件夹(比如my-first-playwright),然后进入文件夹:
mkdir my-first-playwright
cd my-first-playwright
接着运行以下命令安装Playwright的Python版本:
pip install playwright
playwright install
第二条命令会自动下载Chromium、Firefox和WebKit浏览器。
- 检查安装
安装完成后,运行以下命令试试看:
playwright --version
如果看到版本号,恭喜你,环境已经就绪!
第一个脚本:自动化打开网页并截图
好了,准备工作完成,我们来写一个超简单的Playwright脚本:打开一个网页,截图保存。以下是完整代码,稍后我们会逐行解释:
from playwright.async_api import async_playwright
async def main():
async with async_playwright() as p:
# 启动浏览器
browser = await p.chromium.launch(headless=False)
# 创建新页面
page = await browser.new_page()
# 访问网页
await page.goto('https://example.com')
# 截图
await page.screenshot(path='my-first-screenshot.png')
# 关闭浏览器
await browser.close()
if __name__ == '__main__':
import asyncio
asyncio.run(main())
保存与运行
- 在
my-first-playwright文件夹中新建一个文件,命名为first_test.py。 - 将上面代码复制粘贴进去,保存。
- 在终端运行:
python first_test.py
运行后,你会看到一个浏览器窗口自动打开,访问example.com,然后生成一张名为my-first-screenshot.png的截图。是不是有点小激动?
代码逐行拆解
别看代码有几行,对新手来说,每一行都简单易懂:
from playwright.async_api import async_playwright:引入Playwright的异步API,用于Python环境。async with async_playwright() as p:启动Playwright上下文管理器,自动管理资源。p.chromium.launch(headless=False):启动一个可见的Chrome浏览器窗口(headless=False表示有界面,方便观察)。browser.new_page():创建一个新页面,相当于打开一个新标签。page.goto('https://example.com'):让浏览器访问指定网址。page.screenshot(path='my-first-screenshot.png'):截取当前页面并保存为图片。browser.close():关闭浏览器,释放资源。asyncio.run(main()):运行异步函数,确保代码按顺序执行。
进阶体验:用Codegen自动生成脚本
如果你觉得手写代码有点麻烦,Playwright还有个“神器”——代码生成工具(Codegen)。它能边操作边生成代码,简直是新手的救星!
- 在终端运行:
playwright codegen --lang=python
- 这会自动打开一个浏览器窗口和代码生成界面。
- 在浏览器中随便操作(比如点击按钮、输入文本),右边的代码窗口会实时生成对应的Playwright脚本。
- 操作完成后,复制代码,保存到
.py文件,就能直接运行。
比如,你打开example.com,点击页面上的某个链接,Codegen会生成类似这样的代码:
from 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.click('a[href="/about"]')
await browser.close()
if __name__ == '__main__':
import asyncio
asyncio.run(main())
这招对零基础用户尤其友好,几乎不需要写代码,就能完成复杂操作。
再加点料:模拟用户登录
光截图不过瘾?我们再试一个更实用的例子:模拟登录一个网站。假设有个简单的登录页面(我们用一个假想的测试网站https://demo.example.com),代码如下:
from playwright.async_api import async_playwright
async def main():
async with async_playwright() as p:
browser = await p.chromium.launch(headless=False)
page = await browser.new_page()
# 访问登录页面
await page.goto('https://demo.example.com/login')
# 输入用户名和密码
await page.fill('#username', 'myuser')
await page.fill('#password', 'mypassword')
# 点击登录按钮
await page.click('button[type="submit"]')
# 等待页面跳转
await page.wait_for_url('https://demo.example.com/dashboard')
# 截图确认登录成功
await page.screenshot(path='login-success.png')
await browser.close()
if __name__ == '__main__':
import asyncio
asyncio.run(main())
代码亮点
page.fill:自动填充输入框,超级方便。page.click:模拟点击按钮,支持CSS选择器。page.wait_for_url:智能等待页面跳转,确保脚本稳定。
保存为login_test.py,运行python login_test.py,你就能看到浏览器自动完成登录流程。实际项目中,你可以替换成真实的网站URL和登录信息。
遇到问题怎么办?
新手写代码难免会踩坑,以下是几个常见问题及解决办法:
- “找不到元素”:检查CSS选择器是否正确,或者用
page.wait_for_selector等待元素加载。 - 浏览器没反应:确保Playwright安装正确,运行
playwright install重新下载浏览器。 - 代码报错:仔细检查代码缩进和语法,Python对缩进很敏感。Playwright的报错信息通常很清晰,直接复制到Google也能找到答案。
Playwright的官方文档也写得非常友好,遇到问题可以直接查。
下一步:Playwright还能干啥?
恭喜你已经迈出了自动化测试的第一步!Playwright的功能远不止于此,以下是一些进阶玩法,值得探索:
- 并行测试:同时运行多个浏览器,提升测试效率。
- 移动端模拟:测试网页在iPhone或Android上的表现。
- API测试:用Playwright直接测试后端接口。
- CI/CD集成:将脚本接入Jenkins或GitHub Actions,自动化跑测试。
写在最后
从零到写出第一个Playwright脚本,你只用了不到10分钟!Playwright的强大之处在于它简单易上手,却能应对复杂的测试场景。不管你是想提升工作效率、学习自动化测试,还是单纯觉得“自动控制浏览器”很酷,Playwright都是一个值得尝试的工具。
接下来,不妨试试用Codegen生成更复杂的脚本,或者挑战一下真实项目的测试用例。自动化测试的世界大门已经为你打开,快去探索吧!
📢 想深入学习Playwright?关注【测试工程师成长之路】,下一期将分享如何用Playwright打造高效的端到端测试!
更多推荐



所有评论(0)