pythonimport
from playwright.async_api import async_playwright, Page, BrowserContext
async def main():
# 启动浏览器
async with async_playwright() as p:
browser = await p.chromium.launch(headless=False)
context = await browser.new_context()
page = await context.new_page()
# 导航到指定URL
await page.goto("https://example.com")
# 等待页面加载完成
await page.wait_for_load_state("networkidle")
# 截圖
await page.screenshot(path="screenshot.png", full_page=True)
# 填寫表單
await page.fill("input[name='username']", "test_user")
await page.fill("input[name='password']", "test_pass")
# 點擊登錄按鈕
await page.click("button[type='submit']")
# 提取數據
title = await page.title()
text_content = await page.text_content("h1")
# 關閉資源
await page.close()
await context.close()
await browser.close()
# 運行異步主函數
asyncio.run(main())
核心操作说明
| 操作 | 方法 | 用途 |
|---|---|---|
| 启動瀏覽器 | launch() |
初始化瀏覽器實例 |
| 新建上下文 | new_context() |
创建独立的浏览器会话,支持设备模拟、权限设置等 |
| 新建页面 | new_page() |
打开新页面进行操作 |
| 导航到URL | goto() |
跳转到目标网页 |
| 等待页面加载 | wait_for_load_state() |
等待页面达到特定状态(如 networkidle) |
| 截圖 | screenshot() |
截取当前页面截图 |
| 填寫表單 | fill() |
填写输入框内容 |
| 點擊按鈕 | click() |
模拟点击操作 |
| 提取文本 | text_content() |
获取页面中指定元素的文本内容 |
| 關閉資源 | close() |
释放浏览器和页面资源 |
以上代码示例展示了如何使用 Playwright Python 实现浏览器的启动与页面基本操作。通过异步 API 可以高效地处理现代网页应用,适用于自动化测试、爬虫等多种场景。