自动化测试听起来是不是有点高大上?如果你是个完全的编程小白,可能会觉得“写代码测试网页”像是遥不可及的技能。别担心!今天我们就用最简单的方式,带你用Playwright——这个席卷测试圈的“神器”——写出你的第一个自动化测试脚本。零基础也能上手,跟着这篇教程,10分钟让你从“小白”变“小能手”!

为什么选择Playwright?

Playwright是微软开发的一款开源自动化测试工具,专为现代Web应用设计。相比老牌工具Selenium,它速度更快、配置更简单,还能轻松搞定跨浏览器测试和移动端模拟。无论你是想测试网页功能、抓取数据,还是自动执行重复操作,Playwright都能帮你省时省力。

最重要的是,Playwright对新手超级友好!它自带代码生成工具,文档清晰,即使你没写过代码,也能快速上手。接下来,我们就一步步带你完成第一个Playwright脚本,用Python语言编写。

准备工作:搭建环境

别被“环境”两个字吓到,Playwright的安装过程简单到飞起。我们以Python为例(因为Python语法简单,适合新手)。跟着以下步骤走,3分钟搞定:

  1. 安装Python
    如果你还没安装Python,去Python官网下载最新版本(建议3.8或以上),安装后在终端运行以下命令检查:
python --version
pip --version

看到版本号输出就说明安装成功。

  1. 安装Playwright
    打开终端,创建一个新文件夹(比如my-first-playwright),然后进入文件夹:
mkdir my-first-playwright
cd my-first-playwright

接着运行以下命令安装Playwright的Python版本:

pip install playwright
playwright install

第二条命令会自动下载Chromium、Firefox和WebKit浏览器。

  1. 检查安装
    安装完成后,运行以下命令试试看:
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())

保存与运行

  1. my-first-playwright文件夹中新建一个文件,命名为first_test.py
  2. 将上面代码复制粘贴进去,保存。
  3. 在终端运行:
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)。它能边操作边生成代码,简直是新手的救星!

  1. 在终端运行:
playwright codegen --lang=python
  1. 这会自动打开一个浏览器窗口和代码生成界面。
  2. 在浏览器中随便操作(比如点击按钮、输入文本),右边的代码窗口会实时生成对应的Playwright脚本。
  3. 操作完成后,复制代码,保存到.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打造高效的端到端测试!

Logo

欢迎加入我们的广州开发者社区,与优秀的开发者共同成长!

更多推荐