之前的Selenium Java脚本在火狐运行时都是好好的,当时的软件版本如下:
Firefox应该是V58以上
火狐驱动版本为:geckodriver-v0.20.0
Selenium版本为:3.8.1
隔了一段时间运行之前的脚本(此时Firefox版本为V66),发现脚本在刚开始实例化火狐的时候(WebDriver driver = new FirefoxDriver())就报错了,报错如下:
文字报错如下:
console.error: BroadcastService:
receivedBroadcastMessage: handler for
remote-settings/monitor_changes
threw error:
Message: Error: Polling for changes failed: NetworkError when attempting to fetch resource..
Stack:
remoteSettingsFunction/remoteSettings.pollChanges@resource://services-settings/remote-settings.js:190:13
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
五月 08, 2019 12:23:36 下午 org.openqa.selenium.remote.ErrorCodes toStatus
信息: HTTP Status: '404' -> incorrect JSON status mapping for 'unknown error' (500 expected)
Exception in thread "main" org.openqa.selenium.WebDriverException: newSession
Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12-01T19:05:14.666Z'
System info: host: 'USERCHI-66SNOKV', ip: '192.168.0.104', os.name: 'Windows 10', os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_152'
Driver info: driver.version: FirefoxDriver
remote stacktrace: WebDriverError@chrome://marionette/content/error.js:179:5
UnknownCommandError@chrome://marionette/content/error.js:473:5
despatch@chrome://marionette/content/server.js:282:13
execute@chrome://marionette/content/server.js:263:11
onPacket/<@chrome://marionette/content/server.js:236:15
onPacket@chrome://marionette/content/server.js:235:8
_onJSONObjectReady/<@chrome://marionette/content/transport.js:493:9
可以看到报错中包含了很多关于“incorrect JSON status mapping” 的错误。
原因可能为:
在此期间,我的火狐浏览器一直在自动升级,gecko driver和selenium的版本一直没变
而火狐驱动gecko driver 在版本V22的时候重构了对于JSON的处理,所以可能导致了此问题。
见gecko driver V22的release notes:
解决方法:
gecko driver使用V22及以上版本即可。
gecko driver 下载地址:官方地址
********************************************************************************************************
近期我会在博客中系统的更新一些关于Selenium的文章,也请大家多多关注下我的视频课程:
入门:基于Java的Selenium3自动化测试完整教程
高级:Selenium Java高级架构课程
*********************************************************************************************************
阅读更多精彩文章,请大家关注我的测试公众号:火烈鸟测试