playwright codegen判断dailog
时间: 2025-07-22 10:56:36 浏览: 2
### 使用 Playwright Codegen 处理对话框
Playwright 提供了一种简单而强大的方式来处理 JavaScript 对话框(如 `alert`、`confirm` 和 `prompt`)。可以通过监听 `dialog` 事件并定义回调函数来进行交互。以下是具体的方法和示例代码。
#### 方法说明
为了捕获页面上的对话框,可以使用 `page.on('dialog', callback)` 注册一个事件处理器[^2]。该处理器会在任何类型的对话框弹出时被触发,并允许开发者访问对话框的内容以及执行接受 (`accept`) 或拒绝 (`dismiss`) 操作。
#### 示例代码
下面是一个完整的示例,展示如何使用 Playwright Codegen 并处理对话框:
```python
from playwright.sync_api import sync_playwright
def handle_dialog(dialog):
"""自定义对话框处理逻辑"""
print(f"Dialog message: {dialog.message}") # 打印对话框消息
dialog.accept() # 接受对话框 (相当于点击 OK)
with sync_playwright() as p:
browser = p.chromium.launch(headless=False) # 启动 Chromium 浏览器
page = browser.new_page()
# 设置对话框事件监听器
page.on("dialog", lambda dialog: handle_dialog(dialog))
# 导航到测试页面
page.goto("https://example.com")
# 假设此按钮会触发 alert 对话框
page.click("text=Trigger Alert")
# 关闭浏览器
browser.close()
```
上述代码中,我们注册了一个名为 `handle_dialog` 的回调函数用于处理对话框事件。每当页面上出现新的对话框时,都会自动调用这个函数。
#### 注意事项
- 如果不希望关闭对话框,则可以用 `dialog.dismiss()` 替代 `dialog.accept()`。
- 确保在实际项目中替换 `"https://example.com"` 及其对应的 DOM 查询字符串以匹配目标网站结构。
#### 进一步扩展功能
除了基本的接受/拒绝操作外,对于带有输入字段的提示框(即 prompt),还可以通过向 `dialog.accept(user_input)` 函数传入参数的方式提供用户响应数据。
```python
def handle_prompt(dialog):
if dialog.type == "prompt":
dialog.accept("User Input Here!") # 输入指定文本作为回复
else:
dialog.accept() # 默认仅确认其他类型对话框
```
阅读全文
相关推荐

















