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

使用pytest-asyncio搭配pyppeteer执行launch后不运行后续语句

问题原因与修复方案

你提交的代码存在3类核心问题,会导致启动后卡住或直接报错:

  1. 方法调用对象错误:new_page()是浏览器实例browser的内置方法,不是pyppeteer模块的方法
  2. 导入逻辑错误:代码仅导入了pyppeteer下的launch方法,没有导入整个pyppeteer模块,即使你要调用模块方法也会触发未定义报错
  3. 缺少必要的资源回收逻辑和启动兼容参数:测试结束后没有关闭浏览器会导致异步任务挂起,部分权限受限的环境下缺少启动参数也会导致Chromium启动后无响应
修复后的可运行代码
import pytest
from pyppeteer import launch

@pytest.mark.asyncio
async def test_BackendWeb():
    # 添加兼容参数避免不同环境下启动卡住
    browser = await launch(
        headless=False,
        args=['--no-sandbox', '--disable-dev-shm-usage']
    )
    # 调用浏览器实例的方法新建页面
    page = await browser.new_page()
    await page.goto('https://www.google.com/')
    # 测试完成后主动关闭浏览器释放资源
    await browser.close()
额外注意事项
  • 确保已经安装pytest-asyncio依赖,才能正常运行异步测试用例
  • 首次运行如果Pyppeteer自动下载Chromium失败,可以在launch方法中添加executablePath参数,传入本地已安装的Chrome/Chromium可执行文件路径即可
  • 自动化批量测试时建议将headless参数改为True,可以大幅提升运行效率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:15:05