前言
Playwright是微软开源的一个 UI 自动化测试工具 。可在所有现代浏览器中实现快速、可靠和强大的自动化。支持跨浏览器、跨平台、跨语言、以及移动网络测试。添加自动等待、视频录制等功能。
- 支持所有浏览器
- 快速可靠的执行
- 强大的自动化功能
- 支持持续集成
一、安装
安装 playwright:
pip install playwright
安装playwright自带的浏览器
playwright install
说明:这一步即可安装所需的浏览器,不需要再安装驱动包,安装playwright时python版本要3.7以上,在python3.6上安装找不到对应的版本
二、用法
Playwright 提供2种运行方式:同步和异步
- 同步调用:sync_api 里的sync_playwright
- 异步调用:async_api 里的async_playwright
1、同步
代码如下(示例):
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
# 启动 chromium 浏览器
browser = p.chromium.launch(headless=False)
# 打开一个标签页
page= browser.new_page()
# 打开百度
page.goto("https://www.baidu.com")
# 打印当前页面title
print(page.title())
#关闭浏览器
browser.close()
2、异步
代码如下(示例):
import asyncio
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://www.baidu.com")
print(await page.title())
await browser.close()
asyncio.run(main())
三、第一个脚本
第一个实例:
打开百度浏览器,并且进行截图保存
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("https://www.baidu.com")
page.screenshot(path="example.png")
browser.close()
四、无头模式/等待时间
Playwright 运行默认是无头模式( headless mode). 可以使用slow_mo降低执行速度。
- headless=False 声明是无头模式
- slow_mo=1000 设置等待1秒
应用:
chromium.launch(headless=False, slow_mo=1000)
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
#无头模式,等待1秒
browser = p.chromium.launch(headless=False, slow_mo=1000)
page = browser.new_page()
page.goto("https://www.baidu.com")
browser.close()