Playwright中page.goto触发Page crashed错误(仅Chrome出现)
问题描述
使用Playwright的page.goto()函数时,Chrome浏览器中出现「Page crashed」错误,WebKit可正常运行。
错误日志
Error: page.goto: Page crashed
Call log:
- navigating to "https://www.whateveritis.com/", waiting until "load"
相关代码片段
业务测试用例:
test("Check Hover Functionality for menu",async ({page,baseURL})=>{ await page.goto(baseURL) await HomePageFlow.validateHomePage(page) await HomePageFlow.visitCategoryFromHomePage(homepagedata, page) }
极简测试用例(同样触发问题):
test("open google",async ({page})=>{ await page.goto("https://www.google.com"); }
环境依赖(package.json)
{ "name": "webautomation", "version": "1.0.0", "description": "", "main": "index.js", "scripts": {}, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "@playwright/test": "^1.40.1", "@types/node": "^20.10.5" } }
排查与解决步骤
调整页面等待策略
将page.goto()的等待选项从默认的load改为domcontentloaded或networkidle,避免因页面资源加载超时触发崩溃:await page.goto(baseURL, { waitUntil: 'domcontentloaded' }); // 或者 await page.goto(baseURL, { waitUntil: 'networkidle' });禁用Chrome沙箱模式
Chrome沙箱机制可能与测试环境冲突,在Playwright配置中添加启动参数:
新建/修改playwright.config.js:module.exports = { use: { browserName: 'chromium', launchOptions: { args: ['--no-sandbox', '--disable-setuid-sandbox'] } } };同步Playwright绑定的Chromium版本
执行npx playwright install chromium,重新安装与当前Playwright 1.40.1匹配的Chromium版本,避免本地Chrome版本不兼容问题。增加Chrome内存分配
若测试环境内存不足,Chrome进程易崩溃,在启动参数中增加内存限制:launchOptions: { args: ['--no-sandbox', '--disable-setuid-sandbox', '--max-old-space-size=4096'] }排查页面资源加载异常
开启网络日志定位问题资源:
在测试用例中添加路由日志:test.beforeEach(async ({ context }) => { await context.route('**/*', route => { console.log(`Loading: ${route.request().url()}`); route.continue(); }); });或通过
DEBUG=pw:network环境变量启动测试,查看网络请求详情。禁用Chrome扩展
浏览器扩展可能干扰页面加载,在启动参数中禁用所有扩展:launchOptions: { args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-extensions'] }
内容的提问来源于stack exchange,提问作者Krupen Patel
相关产品推荐
相关产品推荐

