Selenium 3.0 Firefx 驱动程序失败并出现 org.openqa.selenium.SessionNotCreatedException:无法创建新的远程会话

Posted

技术标签:

【中文标题】Selenium 3.0 Firefx 驱动程序失败并出现 org.openqa.selenium.SessionNotCreatedException:无法创建新的远程会话【英文标题】:Selenium 3.0 Firefx Driver fails with org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session 【发布时间】:2017-02-27 15:28:32 【问题描述】:

System.setProperty("webdriver.gecko.driver", "..<Path>../geckodriver.exe");
capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
driver = new FirefoxDriver(capabilities);


Caused by: org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [marionette=true, firefoxOptions=org.openqa.selenium.firefox.FirefoxOptions@23aa363a, browserName=firefox, moz:firefoxOptions=org.openqa.selenium.firefox.FirefoxOptions@23aa363a, version=, platform=ANY], required capabilities = Capabilities []
Build info: version: '3.0.0', revision: '350cf60', time: '2016-10-13 10:48:57 -0700'
System info: host: 'D202540', ip: '10.22.19.193', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_45'
Driver info: driver.version: FirefoxDriver
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:91)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:241)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:128)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:259)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:247)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:242)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:135)

【问题讨论】:

同样情况在linux上寻找解决办法 你是怎么解决的@lese? 这个问题已经使用 Selenium Webdriver 3.3.1 和 Geckodricer v0.15 解决了 【参考方案1】:

geckodriver 0.15 和 selenium 3.3 版本解决了这个问题。

【讨论】:

这让我意识到对于 geckodriver 0.17 你需要 Selenium 3.4.0 geckodriver 0.20.1 和 Selenium 3.11.0 仍然存在同样的问题。这是我的问题:***.com/questions/49969902/…【参考方案2】:

您需要下载 geckodriver。然后设置

System.setProperty("webdriver.gecko.driver", "path\\to\\geckodriver.exe")

检查这个link。

【讨论】:

我正在设置系统属性,但仍然收到错误,System.setProperty("webdriver.gecko.driver", "..../geckodriver.exe");能力 = DesiredCapabilities.firefox();能力.setCapability(“木偶”,真); driver = new FirefoxDriver(capabilities); geckodriver.exe 的路径怎么写? 路径格式应为“D:\\work\\project\\geckodriver.exe”。如果你只是像上面写的那样设置路径是行不通的。【参考方案3】:

我遇到了同样的问题并用这个解决了它。似乎找不到 Firefox 二进制文件

capabilities.setCapability("firefox_binary","C:\\Program Files\\Mozilla Firefox\\firefox.exe");

【讨论】:

【参考方案4】:

同样的问题。以管理员权限打开 Eclipse/Netbeans 已解决。

【讨论】:

【参考方案5】:

这行得通(linux mint,opensuse thumbleweed,win7) 与

libraryDependencies += "org.seleniumhq.selenium" % "selenium-firefox-driver" % "3.0.1"

geckodriver.exe -V 壁虎驱动 0.13.0

if (System.getProperty("os.name").toLowerCase().contains("linux")) 
  println("загружены настройки os.name=linux")
  System.setProperty("webdriver.chrome.driver", "bin/chromedriver")
  System.setProperty("webdriver.gecko.driver", "bin/geckodriver")

else
  System.setProperty("webdriver.chrome.driver", "bin\\chromedriver.exe")
  System.setProperty("webdriver.gecko.driver", "bin\\geckodriver.exe")
  System.setProperty("webdriver.ie.driver", "bin\\IEDriverServer.exe")
  System.setProperty("webdriver.edge.driver", "C:\\Program Files (x86)\\Microsoft Web Driver\\MicrosoftWebDriver.exe")
  System.setProperty("webdriver.opera.driver", "c:\\XXX\\operadriver.exe")

  System.setProperty("webdriver.opera.path","""C:\\Users\\user\\AppData\\Local\\Programs\\Opera""")
  System.setProperty("webdriver.opera.binary","""C:\\Users\\user\\AppData\\Local\\Programs\\Opera\\launcher.exe""")
  //

...

      case
        "firefox" => 
        println(" подгружаем Веб-драйвер: geckodriver")
        //iniprofile = new ProfilesIni()
        //ffprofile = iniprofile.getProfile("default")
        dc = DesiredCapabilities.firefox()
        dc.setCapability("gecko", true) // как выйдет драйвер, так и установить
//        dc.setCapability(FirefoxDriver.PROFILE, ffprofile); //FirefoxDriver.PROFILE = “firefox_profile”;
        remote = new FirefoxDriver(dc)
      

但是,对于 Remotewebdriver-connection,如果之前的会话失败、取消或中止,我们会收到错误:

[info] XXXX.E011_WebDB6292 *** ABORTED ***
[info]   org.openqa.selenium.SessionNotCreatedException: Session is already started (WARNING: The server did not provide any stacktrace information)
[info] Command duration or timeout: 0 milliseconds
[info] Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:49:13 -0700'
[info] System info: host: 'XXXX', ip: '172.16.4.125', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_11'
[info] Driver info: driver.version: RemoteWebDriver
[info]   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

【讨论】:

【参考方案6】:

我今天遇到了同样的问题,看来不是我的笔记本电脑的管理员实际上是一个问题。解决它

以非管理员方式安​​装 Firefox(只需在 Windows 要求提升权限时单击“否”即可)

使用 exe 路径(对于我的系统,类似于 C:\\Users\\MyUserName\\AppData\\Local\\MozillaFirefox\\firefox.exe)。

它实际上解决了这个问题。

【讨论】:

【参考方案7】:

如果您不想下载 Gecko 驱动程序,也可以将 Firefox 版本降级到 44。

https://support.mozilla.org/t5/Install-and-Update/Install-an-older-version-of-Firefox/ta-p/1564

【讨论】:

【参考方案8】:

如果您使用的是最新的 GekoDriver,那么最好也更新 Selenium 库版本。 上述问题与 Selenium 版本有关。

【讨论】:

以上是关于Selenium 3.0 Firefx 驱动程序失败并出现 org.openqa.selenium.SessionNotCreatedException:无法创建新的远程会话的主要内容,如果未能解决你的问题,请参考以下文章

selenium 3.0与2.0 打开火狐浏览器的区别

好书送不停| 周四《Selenium WebDriver 3.0 自动化测试框架实战指南》

基于python实现UI自动化3.0 selenium - webdriver常见8大元素定位

第一天 | 好书送不停 |《Selenium WebDriver 3.0 自动化测试框架实战指南》书籍(10本)

Selenium 2.0与Selenum 3.0介绍

selenium 3.0 键盘事件 +强制结束chromedriver进程代码