Playwright 是一个强大的自动化工具,用于自动化浏览器的操作。它支持多种编程语言,包括 Python。使用 Playwright-Python 处理多个页面可以通过以下步骤实现:
以下是一个使用 Playwright-Python 处理多个页面的示例:
from playwright.sync_api import sync_playwright
def run(playwright):
# 启动浏览器
browser = playwright.chromium.launch()
# 创建一个新的浏览器上下文
context = browser.new_context()
# 在上下文中打开第一个页面
page1 = context.new_page()
page1.goto('https://example.com/page1')
print(page1.title())
# 在上下文中打开第二个页面
page2 = context.new_page()
page2.goto('https://example.com/page2')
print(page2.title())
# 在第一个页面上进行操作
page1.fill('input[name="username"]', 'user1')
page1.fill('input[name="password"]', 'pass1')
page1.click('button[type="submit"]')
# 在第二个页面上进行操作
page2.fill('input[name="search"]', 'Playwright')
page2.click('button[type="search"]')
# 关闭页面和浏览器
page1.close()
page2.close()
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright)
原因:网络延迟或页面内容加载缓慢。 解决方法:
page.goto('https://example.com', timeout=60 * 1000) # 设置超时时间为60秒
原因:页面结构变化或元素加载延迟。 解决方法:
page.wait_for_selector('input[name="username"]', timeout=5 * 1000) # 等待元素出现
原因:多个页面同时操作同一资源可能导致冲突。 解决方法:
通过以上步骤和示例代码,你可以有效地使用 Playwright-Python 处理多个页面,并解决常见的自动化问题。
领取专属 10元无门槛券
手把手带您无忧上云