【问题标题】:Selenium Webdriver 3.3.1 gecko driver 0.18 Firefox 55.0.03 URL not openingSelenium Webdriver 3.3.1 gecko driver 0.18 Firefox 55.0.03 URL 未打开
【发布时间】:2017-09-05 05:54:15
【问题描述】:

尝试使用 Selenium Webdriver 3.3.1 gecko driver 0.18 Firefox 55.0.03 URL 启动 Firefox 浏览器未打开。我收到以下错误:

 1504590431182  geckodriver INFO    Listening on 127.0.0.1:17925 Sep 05,
 2017 11:17:11 AM org.openqa.selenium.remote.ProtocolHandshake
 createSession INFO: Attempting bi-dialect session, assuming Postel's
 Law holds true on the remote end 1504590431839 geckodriver::marionette INFO    Starting browser  \\?\C:\Program Files (x86)\Mozilla Firefox\firefox.exe with args["-marionette"] 1504590433890 addons.manager  ERROR   startup failed:
 [Exception... "Component returned failure code: 0x80070057
 (NS_ERROR_ILLEGAL_VALUE) [nsIFile.create]"  nsresult: "0x80070057
 (NS_ERROR_ILLEGAL_VALUE)"  location: "JS frame ::
 resource://gre/modules/FilJavaScerUitpitl se.rjrsomr :: :r
 eFsioluerUctei:l/s/_ggreet/Dmiord u:l:e sl/iAnded o7n0M"a n
 adgaetra.:j snmo,]  lSitnaec k1 5t9r6a:ce: 
 NFSi_lEeRURtOiRl_sN_OgTe_tIDNiIrT(I)A@LrIeZsEoDu:r
 cAed:d/o/ngMraen/amgoedru liess /nFoitl eiUntiitlisa.ljiszme:d7 0  <
 FileUtils_getFile()@resource://gre/modules/FileUtils.jsm:42 <
 validateBlocklist()@resource://gre/modules/AddonManager.jsm:656 <
 startup()@resource://gre/modules/AddonManager.jsm:816 <
 startup()@resource://gre/modules/AddonManager.jsm:3122 <
 observe()@jar:file://///%3F/C:/Program%20Files%20(x86)/Mozilla%20Firefox/omni.ja!/components/addonManager.js:65
 1504590434086  Marionette  INFO    Enabled via --marionette JavaScript
 error: resource://gre/modules/AddonManager.jsm, line 2465:
 NS_ERROR_NOT_INITIALIZED: AddonManager is not initialized JavaScript
 error: resource://gre/modules/AddonManager.jsm, line 3137: TypeError:
 AddonManagerInternal._getProviderByName(...) is undefined
 1504590435547  Marionette  INFO    Listening on port 54969
 1504590435588  Marionette  INFO    Listening on port 54969 Sep 05, 2017
 11:17:16 AM org.openqa.selenium.remote.ProtocolHandshake createSession
 INFO: Falling back to original OSS JSON Wire Protocol. Sep 05, 2017
 11:17:16 AM org.openqa.selenium.remote.ProtocolHandshake createSession
 INFO: Falling back to straight W3C remote end connection Exception in
 thread "main" org.openqa.selenium.SessionNotCreatedException: Unable
 to create new remote session. desired capabilities = Capabilities
 [{marionette=true,
 firefoxOptions=org.openqa.selenium.firefox.FirefoxOptions@71e53b,
 browserName=firefox,
 moz:firefoxOptions=org.openqa.selenium.firefox.FirefoxOptions@71e53b,
 version=, platform=ANY}], required capabilities = Capabilities [{}]
 Build info: version: Driver info: driver.version:
 FirefoxDrive

请为此提供解决方案。

【问题讨论】:

  • 升级到最新的 selenium 绑定然后测试

标签: selenium selenium-webdriver selenium-firefoxdriver


【解决方案1】:

您看到的错误说明了一切Build info: version: Driver info: driver.version:。壁虎驱动程序没有捕获和打印您的构建信息和版本。主要原因是 SeleniumGeckoDriverMozilla Firefox Browser 版本与您的 Test Environment 不兼容。

你提到了Selenium Webdriver 3.3.1 gecko driver 0.18 Firefox 55.0.03

geckodriver v0.18.0 的发行说明明确提到了以下依赖:

Note that geckodriver v0.16.0 is only compatible with Selenium 3.4 and greater.

当您尝试使用 Selenium v3.3.1geckodriver v0.18.0 时,您会看到 SessionNotCreatedException

【讨论】:

    【解决方案2】:

    下载最新版本的 selenium jar 文件,即 3.5 并尝试一下。正如我所读到的,您使用了 geckodriver v0.18,因此请使用最新的 jar。

    【讨论】:

      【解决方案3】:

      下载 selenium 最新稳定版本,即 selenium 3.5.3 并创建驱动程序如下。

      System.setProperty("webdriver.gecko.driver",geckoDriverPath);
      FirefoxProfile ffProfile = new FirefoxProfile();
      ffProfile.setPreference("browser.tabs.remote.autostart.2", false);
      FirefoxOptions options=new FirefoxOptions();
      options.setProfile(ffProfile);
      driver = new FirefoxDriver(options);
      

      从以下链接下载最新的 geckoDriver。

      Link to download geckodriver

      下面的代码是为了解决退出驱动时浏览器崩溃的问题。

      ffProfile.setPreference("browser.tabs.remote.autostart.2", false);
      

      【讨论】:

        最近更新 更多