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

Protractor代码在Android设备运行正常但Jasmine报告显示失败求助

解决Protractor测试在Android设备执行正常但Jasmine报告失败的问题

从你描述的情况和提供的信息来看,核心问题出在ChromeDriver与设备Chrome版本不兼容,再加上配置里的旧ChromeDriver路径覆盖了更新后的版本,导致测试实际跑通但报告抛出错误。下面是具体的排查和修复步骤:

1. 先明确版本不匹配的核心问题

你的报错信息里明确显示:

Session info: chrome=64.0.3282.137
Driver info: chromedriver=2.33.506120

根据ChromeDriver的官方兼容规则,ChromeDriver 2.33仅支持Chrome 60-62版本,而你的设备上是Chrome 64,版本完全不匹配,这就是Cannot navigate to invalid URL报错的根源。

2. 修正Protractor配置里的ChromeDriver设置

你手动指定了chromeDriver路径,这会直接跳过webdriver-manager更新的新版本,需要做以下调整:

  • 直接删除配置里的chromeDriver:'./node_modules/chromedriver/lib/chromedriver/chromedriver.exe'这一行,让Appium自动匹配对应版本的ChromeDriver(Appium会根据设备Chrome版本自动找合适的ChromeDriver)
  • 或者手动下载对应Chrome 64的ChromeDriver版本(应为2.35版本,支持Chrome 62-64),然后把chromeDriver路径更新到新版本的exe文件位置

3. 修复Capabilities里的拼写和配置问题

你的capabilities有几处小问题,可能间接影响报告准确性:

  • deviceName是空的,必须填写你的Android设备名称(可以通过adb devices命令获取)
  • autowebview和autoacceptalerts拼写错误,正确的驼峰写法是autoWebview和autoAcceptAlerts
  • 混合应用WebView测试时,browserName可以留空,但要确保autoWebview: true生效

修正后的capabilities示例:

capabilities: {
    platformName: 'Android',
    platformVersion: '7.1.1',
    deviceName: '你的设备名称', // 比如"Pixel 5"或通过adb获取的设备ID
    browserName: '',
    autoWebview: true,
    autoAcceptAlerts: true,
    autoGrantPermissions: true,
    clearSystemFiles: true,
    app: './platforms/android/build/outputs/apk/android-debug.apk',
},

4. 确保webdriver-manager更新生效

执行以下命令确认更新后的ChromeDriver版本:

webdriver-manager status

如果显示的ChromeDriver不是2.35,重新执行更新命令指定版本:

webdriver-manager update --versions.chromedriver 2.35

5. 检查报告生成逻辑

因为测试实际执行正常但报告失败,还要确认onComplete里的报告生成逻辑:

  • 确保./report/mobile和./screenshots目录存在,否则生成报告时可能抛出文件路径错误
  • 检查xmlresults.xml文件是否正确生成,有没有测试用例的错误日志被遗漏

按以上步骤调整后,重新运行测试,应该就能解决报告显示失败的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:45:22