You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从无检测Chrome驱动转用nodriver,如何处理Alert弹窗?

使用nodriver处理Alert弹窗的实现方案

以下是满足你需求的代码示例,完全基于nodriver库实现:

import asyncio
from nodriver import start, Tab

async def handle_alert():
    # 启动浏览器并打开目标页面
    browser = await start()
    tab = await browser.get("你的目标页面URL")

    # 1. 点击触发弹窗的按钮(替换为实际页面的元素选择器,如CSS/XPath)
    await tab.click("button#trigger-alert")

    try:
        # 2. 等待弹窗出现,设置超时时间为10秒
        alert = await tab.wait_for_alert(timeout=10)
        # 3. 打印弹窗文本并接受弹窗
        print("Alert文本内容:", alert.text)
        await alert.accept()
    except asyncio.TimeoutError:
        # 4. 超时未出现弹窗则不执行任何操作
        pass

    # 关闭浏览器
    await browser.close()

if __name__ == "__main__":
    asyncio.run(handle_alert())

关键逻辑说明:

  • 点击按钮:使用tab.click()定位并点击触发弹窗的元素,需替换为你页面实际的元素选择器(比如CSS选择器、XPath)。
  • 等待弹窗:tab.wait_for_alert(timeout=10)会在指定时长内等待Alert弹出,超时未出现则抛出asyncio.TimeoutError。
  • 弹窗处理:拿到Alert对象后,通过alert.text获取弹窗文本,await alert.accept()完成弹窗确认;若需取消弹窗,可使用await alert.dismiss()。
  • 超时分支:捕获TimeoutError后直接跳过,实现“未出现弹窗不操作”的需求。

内容的提问来源于stack exchange,提问作者Abhash Rai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 17:42:33