Playwright Python:微软出的浏览器自动化库

Playwright Python:微软出的浏览器自动化库

Playwright 的 Python 版本在 GitHub 上已经拿到 14,708 Star 了。

微软开源了这个库,专门做浏览器自动化。Chromium、Firefox、WebKit 三个内核,用同一套 API 就能操控。支持同步和异步两种写法,Linux、macOS、Windows 全平台覆盖。

1、 这玩意儿是干嘛的

一句话:用 Python 代码自动操控浏览器。

填表单、点按钮、截页面、跑测试、抓数据,这些原本需要人手动在浏览器里完成的操作,它都能程序化执行。而且不挑浏览器,Chrome 系、Firefox、Safari 用的 WebKit 内核,一套代码通吃。

脚本写一次,可以反复跑,也可以挂到 CI 流程里定时执行。人不用守着浏览器点来点去。

正文顶部截图

2、 为什么要用它

浏览器自动化这个领域,工具不少。Selenium 用了很多年,但配置驱动、处理弹窗、等待元素这些细节经常让人头疼。Playwright 的设计思路是把这些问题前置解决掉。

自动等待是内置的。你告诉它点击某个按钮,它会先等这个按钮出现在 DOM 里,再确认它可见、可点击,然后才执行动作。不用自己写一堆 sleep 和显式等待,脚本稳定很多。

单 API 多浏览器也是重点。同一个脚本,改个浏览器名称就能在 Chromium、Firefox、WebKit 之间切换,不用为每种浏览器单独维护一套逻辑。测试兼容性的时候省不少事。

网络拦截、模拟设备、地理位置、权限管理这些能力也都封装好了,不需要额外找插件或者自己造轮子。

3、 怎么用

安装很简单,pip 直接装:

pip install playwright
playwright install

同步写法很直接:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    for browser_type in [p.chromium, p.firefox, p.webkit]:
        browser = browser_type.launch()
        page = browser.new_page()
        page.goto('http://playwright.dev')
        page.screenshot(path=f'example-{browser_type.name}.png')
        browser.close()

异步写法适合集成到现有 async 项目里:

import asyncio
from playwright.async_api import async_playwright

async def main():
    async with async_playwright() as p:
        for browser_type in [p.chromium, p.firefox, p.webkit]:
            browser = await browser_type.launch()
            page = await browser.new_page()
            await page.goto('http://playwright.dev')
            await page.screenshot(path=f'example-{browser_type.name}.png')
            await browser.close()

asyncio.run(main())

README区域截图

4、 适合哪些人用

  • 写 Web UI 自动化测试的测试工程师
  • 需要爬虫抓动态页面数据的后端开发者
  • 做浏览器端性能测试或兼容性验证的技术团队
  • 需要批量截图、生成 PDF 报表的运维或数据人员
posted @ 2026-06-11 14:37  codinglife66  阅读(4)  评论(0)    收藏  举报