极简playwright

Playwright 是一个自动化库,用于跨浏览器的 Web 自动化。它由 Microsoft 开发,支持多种编程语言,包括 Python。Playwright 提供了自动化的浏览器环境,可以用于端到端的测试、爬虫、自动化脚本等。

Playwright 架构

Playwright 的架构设计得非常模块化,主要包括以下几个核心组件:

  1. Playwright:这是整个自动化库的入口点,用于创建浏览器实例(Browser)和浏览器上下文(BrowserContext)。
  2. Browser:代表一个浏览器实例,可以是 Chrome、Firefox、Webkit 或无头浏览器。Browser 对象用于管理和控制浏览器的生命周期。
  3. BrowserContext:代表一个浏览器上下文,可以理解为一个独立的浏览器会话,包含多个页面(Page)。BrowserContext 用于隔离测试环境,确保测试之间不会相互影响。
  4. Page:代表浏览器中的一个页面。Page 对象提供了大量的方法,用于与页面交互,如点击、填写表单、导航等。
  5. Locator:用于定位页面上的元素。Locator 对象可以用于执行各种操作,如点击、输入文本等。
  6. API:Playwright 提供了丰富的 API,用于模拟用户的各种行为,如键盘输入、鼠标操作等。

Playwright 安装

在 Python 中,可以使用 pip 来安装 Playwright:

pip install playwright

安装完成后,还需要运行以下命令来自动下载浏览器:

playwright install

Code案例

以下是一个简单的 Playwright Python 脚本示例,它打开一个页面,点击一个元素,并获取页面上的文本。

from playwright.sync_api import sync_playwright
# 使用 sync API
with sync_playwright() as p:
    # 启动浏览器
    browser = p.chromium.launch(headless=False)  # headless=False 表示显示浏览器界面
    page = browser.new_page()
    
    # 打开页面
    page.goto('https://www.example.com')
    
    # 点击一个元素
    page.click('text="Click me"')
    
    # 获取页面上的文本
    text = page.text_content('h1')
    print(text)
    
    # 关闭浏览器
    browser.close()

在这个例子中,我们首先导入了 sync_playwright,它提供了同步 API。然后,我们启动了一个 Chrome 浏览器实例,并打开了一个新页面。接着,我们导航到指定的 URL,点击了一个文本为 “Click me” 的元素,并获取了

标签的文本内容。

异步 API 使用

Playwright 也支持异步 API,使用 asyncawait 关键字,以下是异步 API 的使用示例:

import asyncio
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://www.example.com')
        await page.click('text="Click me"')
        text = await page.text_content('h1')
        print(text)
        await browser.close()
asyncio.run(main())

在这个例子中,我们使用了 async_playwright 和异步函数 main。我们使用 await 来等待异步操作完成。
希望这个解释能帮助你更好地理解 Playwright 的架构和用法。

你可能感兴趣的:(python)