无法从中读取VR路径注册表

  • 版本:geckodriver-v0.20.0-win64
  • 平台:Windows 10 Home Single
  • 浏览器:Firefox:59.0.2(64位)
  • selenium:selenium-java-3.11.0
  • intelliJ Idea:2018.1社区版

您好,我开始在intelliJ IDEA中使用带有Java的WebDriver。 我使用Maven导入了Selenium,并使用Selenium网页中提供的代码添加了依赖项。 我下载了geckodriver并更新了Windows路径。 我开始编码,但我得到的输出在我看来是一个错误。 有人可以帮我理解发生了什么吗?

import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class firstTry { public static void main (String [] args){ WebDriver driver = new FirefoxDriver(); driver.quit(); } } 

Firefox打开和关闭没有问题,但在控制台中我有一个输出似乎是一个错误给我。 如下:

 1522649487586 geckodriver INFO geckodriver 0.20.0 1522649487598 geckodriver INFO Listening on 127.0.0.1:31435 1522649488194 mozrunner::runner INFO Running command: "C:\\Program Files\\Mozilla Firefox\\firefox.exe" "-marionette" "-profile" "C:\\Users\\Lolaika\\AppData\\Local\\Temp\\rust_mozprofile.0neo1vgzqEe7" Unable to read VR Path Registry from C:\Users\Lolaika\AppData\Local\openvr\openvrpaths.vrpath 1522649490188 Marionette INFO Enabled via --marionette Unable to read VR Path Registry from C:\Users\Lolaika\AppData\Local\openvr\openvrpaths.vrpath Unable to read VR Path Registry from C:\Users\Lolaika\AppData\Local\openvr\openvrpaths.vrpath Unable to read VR Path Registry from C:\Users\Lolaika\AppData\Local\openvr\openvrpaths.vrpath 1522649494926 Marionette INFO Listening on port 54726 1522649495670 Marionette WARN TLS certificate errors will be ignored for this session abr 02, 2018 1:11:35 AM org.openqa.selenium.remote.ProtocolHandshake createSession INFORMACIÓN: Detected dialect: W3C 1522649495872 addons.xpi WARN Exception running bootstrap method shutdown on activity-stream@mozilla.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIObserverService.removeObserver]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: resource://activity-stream/lib/SnippetsFeed.jsm :: uninit :: line 125" data: no] Stack trace: uninit()@resource://activity-stream/lib/SnippetsFeed.jsm:125 < onAction()@resource://activity-stream/lib/SnippetsFeed.jsm:141 < _middleware/</<()@resource://activity-stream/lib/Store.jsm:51 < Store/this[method]()@resource://activity-stream/lib/Store.jsm:30 < uninit()@resource://activity-stream/lib/Store.jsm:153 < uninit()@resource://activity-stream/lib/ActivityStream.jsm:274  jar:file:///C:/Program%20Files/Mozilla%20Firefox/browser/features/activity-stream@mozilla.org.xpi!/bootstrap.js:80  jar:file:///C:/Program%20Files/Mozilla%20Firefox/browser/features/activity-stream@mozilla.org.xpi!/bootstrap.js:196 < callBootstrapMethod()@resource://gre/modules/addons/XPIProvider.jsm:4419 < observe()@resource://gre/modules/addons/XPIProvider.jsm:2279 < GeckoDriver.prototype.quit()@driver.js:3270 < despatch()@server.js:557 < execute()@server.js:531 < onPacket/<()@server.js:506 < onPacket()@server.js:505 < _onJSONObjectReady/<()@transport.js:500 [Child 2272, Chrome_ChildThread] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346 [Child 2272, Chrome_ChildThread] WARNING: pipe error: 109: file z:/build/build/src/ipc/cUnable to read VR Path Registry from C:\Users\Lolaika\AppData\Local\openvr\openvrpaths.vrpath Promise rejected while context is inactive: Message manager disconnected [Parent 5308, Gecko_IOThread] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346 [Child 5336, Chrome_ChildThread] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346 [Child 5336, Chrome_ChildThread] WARNIN[Parent 5308, Gecko_IOThread] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346 [Child 8788, Chrome_ChildThread] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346 [Child 8788, Chrome_ChildThread] WARNING: pipe error: 109*** UTM:SVC TimerManager:registerTimer called after profile-before-change notification. Ignoring timer registration for id: telemetry_modules_ping [GPU 10500, Chrome_ChildThread] WARN ###!!! [Child][MessageChannel::SendAndWait] Error: Channel error: cannot send/recv 1522649503244 geckodriver::marionette ERROR Failed to stop browser process Process finished with exit code 0 

我该怎么做才能解决这个问题?

我的工作区

使用GeckoDriver v0.20.0Firefox Quantum v59.0.2(64位),您的代码块看起来很好,并且日志堆栈跟踪看起来同样非常好,无法记录日志消息

 Promise rejected while context is inactive: Message manager disconnected 

根据Mozilla支持论坛的讨论,这个错误似乎是隐私獾 。 简而言之,此问题是由未加载/正常工作的扩展引起的。

  • JDK升级到最新级别JDK 8u162
  • Selenium升级到当前级别版本3.11.0
  • 通过IDE 清理 Project Workspace ,并仅使用所需的依赖项重建项目。
  • 使用CCleaner工具在执行Test Suite之前和之后擦除所有操作系统。
  • 如果您的基本Firefox版本太旧,请通过Revo Uninstaller将其卸载并安装最新的GA和已发布的Firefox版本。
  • 进行系统重启
  • 执行你的@Test

TL;博士

在window.unload事件之前,未解决的promise是否被拒绝?


更新

好吧,正如我在我的回答中提到的,根据当前的实现,你的堆栈跟踪是公平的 。 但我个人在本地主机上没有看到这个跟踪:

 Promise rejected while context is inactive: Message manager disconnected 

粗略的一些痕迹可以依赖于底层OS 。 现在进行整个讨论是否在window.unload事件之前拒绝了未解决的promise? 底线似乎:

卸载页面的承诺问题(或者通常是未加载页面中的脚本调用)没有被很好地指定并且不能互操作地实现,这是非常真实的。 另请参阅https://bugzilla.mozilla.org/show_bug.cgi?id=1058695 ,我们最终在Gecko中进行了一些技术上不符合规范的缓解措施,因为技术上遵循规范要求在常见情况下泄漏世界….问题是现在没有关于此事件循环内容的规范,而Promise的规范是ES6的一部分,它实际上并不承认领域在某种意义上需要消失的可能性,所以甚至没有提出这样的问题。

因此,结论是你很有竞争力