Selenium Firefox 报错解决:Polling for changes failed:

2020-09-21 14:43发布

之前的Selenium Java脚本在火狐运行时都是好好的,当时的软件版本如下:

Firefox应该是V58以上

火狐驱动版本为:geckodriver-v0.20.0

Selenium版本为:3.8.1

隔了一段时间运行之前的脚本(此时Firefox版本为V66),发现脚本在刚开始实例化火狐的时候(WebDriver driver = new FirefoxDriver())就报错了,报错如下:

文字报错如下:

console.error: BroadcastService:receivedBroadcastMessage: handler forremote-settings/monitor_changesthrew error:Message: Error: Polling for changes failed: NetworkError when attempting to fetch resource..Stack:remoteSettingsFunction/remoteSettings.pollChanges@resource://services-settings/remote-settings.js:190:13Exiting 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: newSessionBuild 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: FirefoxDriverremote stacktrace: WebDriverError@chrome://marionette/content/error.js:179:5UnknownCommandError@chrome://marionette/content/error.js:473:5despatch@chrome://marionette/content/server.js:282:13execute@chrome://marionette/content/server.js:263:11onPacket/<@chrome://marionette/content/server.js:236:15onPacket@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 下载地址:官方地址


文章来源:CSDN 作者:YOYO测试

来源地址:https://blog.csdn.net/yoyocat915/article/details/89949646