playwright--初识playwright


前言

Playwright是微软开源的一个 UI 自动化测试工具 。可在所有现代浏览器中实现快速、可靠和强大的自动化。支持跨浏览器、跨平台、跨语言、以及移动网络测试。添加自动等待、视频录制等功能。

  • 支持所有浏览器
  • 快速可靠的执行
  • 强大的自动化功能
  • 支持持续集成

一、安装

安装 playwright:

pip install playwright  

安装playwright自带的浏览器

playwright install  

说明:这一步即可安装所需的浏览器,不需要再安装驱动包,安装playwright时python版本要3.7以上,在python3.6上安装找不到对应的版本

二、用法

Playwright 提供2种运行方式:同步和异步

  1. 同步调用:sync_api 里的sync_playwright
  2. 异步调用: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降低执行速度。

  1. headless=False 声明是无头模式
  2. 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()