Electron16搭配WebdriverIO运行测试提示chrome not reachable如何解决
解决方案
你遇到的报错是Chromedriver启动Electron进程后,进程立刻退出导致驱动无法连接,可按以下步骤排查修复:
1. 修正wdio.conf.js配置
替换原capabilities配置为以下内容:
capabilities: [{ maxInstances: 1, browserName: 'chrome', acceptInsecureCerts: true, 'goog:chromeOptions': { binary: 'C:/Projects/abc/node_modules/electron/dist/electron.exe', args: [ 'app=C:/Projects/abc', '--no-sandbox', '--disable-gpu', '--disable-dev-shm-usage' ], excludeSwitches: ['enable-automation'] } }]
调整说明:
- 先移除
--headless参数做调试,Electron 16对应Chromium 96的传统headless模式和Electron窗口逻辑存在兼容性问题,确认可正常启动后如果需要无头运行,可替换为--headless=chrome参数验证。 - 新增
--disable-gpu禁用硬件加速,Windows环境下Electron无UI运行时经常因为硬件加速触发崩溃。 - 新增
--disable-dev-shm-usage解决共享内存不足导致的启动失败问题。 - 新增
excludeSwitches: ['enable-automation'],避免自动化标识触发Electron安全拦截导致进程退出。 - 如果app路径识别失败,可将
app=C:/Projects/abc修改为app=file:///C:/Projects/abc尝试。
2. 验证依赖匹配
你当前使用的Electron 16内置Chromium版本为96,和chromedriver 96.0.0版本是匹配的,无需调整版本。可执行以下命令确认本地依赖版本无冲突:npx electron --versionnpx chromedriver --version
3. 手动验证Electron启动
直接运行以下命令,确认你的Electron应用本身可以正常启动:C:/Projects/abc/node_modules/electron/dist/electron.exe C:/Projects/abc
如果手动启动报错,说明是应用本身的问题,和测试框架无关。
4. 开启调试日志定位问题
如果以上操作后仍报错,可在wdio.conf.js顶层添加logLevel: 'debug'配置,输出更详细的启动日志进一步定位问题。
内容的提问来源于stack exchange,提问作者Parth Kumar
相关产品推荐
相关产品推荐

