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

如何检测Pyppeteer调用browser.close()后浏览器是否已正常关闭

Pyppeteer检测浏览器是否正常关闭的解决方案

你调用browser.on('disconnected')返回函数对象是正常的,on方法是事件监听器注册接口,作用是给指定事件绑定回调函数,需要传入一个回调函数作为参数,当disconnected事件触发时(也就是浏览器断开连接/关闭时)会自动执行这个回调,它本身不会返回浏览器的连接状态。

两种正确检测方式

方法1:直接查询当前连接状态

直接调用browser.isConnected()方法,该方法会返回布尔值:

  • 返回True:浏览器处于正常连接运行状态
  • 返回False:浏览器已经关闭/断开连接
    你在await browser.close()之后调用这个方法,返回False就说明浏览器已经正常关闭。

方法2:监听断开事件提前注册回调

你可以在浏览器实例创建后就注册disconnected事件的回调,当浏览器关闭时会自动触发回调逻辑,适合需要异步感知关闭事件的场景。

修改后的可运行示例代码

import asyncio
from pyppeteer import launch 

async def get_browser():
    return await launch({"headless": False})

async def get_page():
    browser = await get_browser()
    # 注册disconnected事件回调,浏览器断开时自动执行
    def on_browser_disconnected():
        print("浏览器已正常触发断开事件")
    browser.on('disconnected', on_browser_disconnected)
    
    url = 'https://www.wikipedia.org/'
    page = await browser.newPage()
    await page.goto(url)
    content = await page.content()
    
    await browser.close()
    # 直接查询连接状态验证关闭
    if not browser.isConnected():
        print("验证通过:浏览器已正常关闭")
    else:
        print("验证失败:浏览器未正常关闭")
    return content


loop = asyncio.get_event_loop()
result  = loop.run_until_complete(get_page())
print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:00:00