文章目录
- [Playwright Python:微软出的浏览器自动化库](#Playwright Python:微软出的浏览器自动化库)
-
- [1、 这玩意儿是干嘛的](#1、 这玩意儿是干嘛的)
- [2、 为什么要用它](#2、 为什么要用它)
- [3、 怎么用](#3、 怎么用)
- [4、 适合哪些人用](#4、 适合哪些人用)
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 直接装:
bash
pip install playwright
playwright install
同步写法很直接:
py
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 项目里:
py
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())

4、 适合哪些人用
- 写 Web UI 自动化测试的测试工程师
- 需要爬虫抓动态页面数据的后端开发者
- 做浏览器端性能测试或兼容性验证的技术团队
- 需要批量截图、生成 PDF 报表的运维或数据人员
程师
- 需要爬虫抓动态页面数据的后端开发者
- 做浏览器端性能测试或兼容性验证的技术团队
- 需要批量截图、生成 PDF 报表的运维或数据人员