Dialog
Dialog 对象会在页面触发 page.on("dialog") 事件时生成。 示例:
- Sync
- Async
from playwright.sync_api import sync_playwright
def handle_dialog(dialog):
print(dialog.message)
dialog.dismiss()
def run(playwright):
browser = playwright.chromium.launch()
page = browser.new_page()
page.on("dialog", handle_dialog)
page.evaluate("alert('1')")
browser.close()
with sync_playwright() as playwright:
run(playwright)
import asyncio
from playwright.async_api import async_playwright
async def handle_dialog(dialog):
print(dialog.message)
await dialog.dismiss()
async def run(playwright):
browser = await playwright.chromium.launch()
page = await browser.new_page()
page.on("dialog", handle_dialog)
await page.evaluate("alert('1')")
await browser.close()
async def main():
async with async_playwright() as playwright:
await run(playwright)
asyncio.run(main())
note
如未监听 page.on("dialog"),对话框会自动关闭。一旦注册监听器,就必须调用 dialog.accept(**kwargs) 或 dialog.dismiss()。否则页面会一直等待对话框,导致点击等操作无法完成。
dialog.accept(**kwargs)
Added in: v1.8当对话框被接受后返回。
dialog.default_value
Added in: v1.8若对话框为 prompt,则返回默认提示内容,否则返回空字符串。
dialog.dismiss()
Added in: v1.8当对话框被关闭后返回。
dialog.message
Added in: v1.8返回对话框中显示的文本。
dialog.type
Added in: v1.8对话框类型,可能为 alert、beforeunload、confirm 或 prompt。