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

Playwright自动化导航时出现空白页问题求助

问题排查建议:Playwright测试时页面空白且请求错误
  • 检查Playwright浏览器依赖与版本
    运行playwright install --with-deps确保浏览器及系统依赖完整,缺失底层库可能导致网络请求异常。同时对比手动测试用的浏览器版本和Playwright启动的浏览器版本,版本差异可能引发兼容性问题,可通过指定channel参数匹配手动版本:

    browser = await chromium.launch(channel="chrome")
    
  • 模拟真实用户环境
    Playwright默认无头模式的环境和手动操作有差异,先切换到有头模式测试:

    browser = await chromium.launch(headless=False)
    

    另外添加真实用户代理、启用缓存,尽量贴近手动操作的请求特征:

    await page.setUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36")
    await page.setExtraHTTPHeaders({"Cache-Control": "max-age=0"})
    
  • 捕获并分析请求错误详情
    给页面绑定请求失败事件,打印具体错误信息,定位是请求超时、资源加载失败还是其他问题:

    page.on("requestfailed", lambda req: print(f"请求失败: {req.url} | 错误信息: {req.failure.errorText}"))
    

    如果是跨域或网站反检测导致的请求被拦截,可尝试禁用Web安全(仅测试环境使用):

    browser = await chromium.launch(args=["--disable-web-security", "--disable-features=IsolateOrigins,site-per-process"])
    
  • 调整等待策略
    点击提交后不要立刻执行验证,等待页面完全加载或关键元素出现:

    await page.click("#submit-button")
    # 等待网络空闲(无新请求1秒)再执行后续操作
    await page.waitForNavigation(waitUntil="networkidle")
    # 或者等待目标页面的核心元素加载完成
    await page.waitForSelector("#order-summary", timeout=10000)
    
  • 重置页面上下文
    每次测试前创建新的页面上下文,避免之前测试的缓存、Cookie残留干扰当前流程:

    context = await browser.new_context()
    page = await context.new_page()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 02:22:35