org.openqa.selenium.SessionNotCreatedException:找不到与selenium v3.14.0和GeckoDriver v0.23.0相匹配的功能集

org.openqa.selenium.SessionNotCreatedException:找不到与selenium v3.14.0和GeckoDriver v0.23.0相匹配的功能集,selenium,firefox,selenium-webdriver,webdriver,geckodriver,Selenium,Firefox,Selenium Webdriver,Webdriver,Geckodriver,我的版本是selenium-java-3.14.0和geckodriver-v0.23.0-win64。 我正在使用以下代码 WebDriver driver; System.setProperty("webdriver.gecko.driver", "D:\\\\Try out files\\\\geckodriver.exe"); driver = new FirefoxDriver(); String baseURL = "http://www.google.com"; driver.ge

我的版本是selenium-java-3.14.0和geckodriver-v0.23.0-win64。 我正在使用以下代码

WebDriver driver;
System.setProperty("webdriver.gecko.driver", "D:\\\\Try out files\\\\geckodriver.exe");
driver = new FirefoxDriver();
String baseURL = "http://www.google.com";
driver.get(baseURL);
当我运行它时,我得到以下错误消息

Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Unable to find a matching set of capabilities
Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:05:20.749Z'
System info: host: '*******', ip: '*****`enter code here`', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_151'
Driver info: driver.version: FirefoxDriver
remote stacktrace: 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$new$0(W3CHandshakeResponse.java:57)
    at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$getResponseFunction$2(W3CHandshakeResponse.java:104)
    at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:122)
    at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
    at java.util.Spliterators$ArraySpliterator.tryAdvance(Unknown Source)
    at java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source)
    at java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source)
    at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
    at java.util.stream.FindOps$FindOp.evaluateSequential(Unknown Source)
    at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
    at java.util.stream.ReferencePipeline.findFirst(Unknown Source)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:125)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:73)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:212)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:130)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:125)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:103)
    at basicweb.FirefoxDriverDemo.main(FirefoxDriverDemo.java:17)
线程“main”org.openqa.selenium.SessionNotCreatedException中的异常:找不到匹配的功能集 构建信息:版本:'3.14.0',修订版:'aacccce0',时间:'2018-08-02T20:05:20.749Z' 系统信息:主机:'*****',ip:'*****`在此处输入代码',os.name:'Windows 10',os.arch:'amd64',os.version:'10.0',java.version:'1.8.0151' 驱动程序信息:Driver.version:FirefoxDriver 远程堆栈跟踪: 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源) 位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源) 位于java.lang.reflect.Constructor.newInstance(未知源) 位于org.openqa.selenium.remote.W3CHandshakeResponse.lambda$new$0(W3CHandshakeResponse.java:57) 位于org.openqa.selenium.remote.W3CHandshakeResponse.lambda$getResponseFunction$2(W3CHandshakeResponse.java:104) 位于org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:122) 位于java.util.stream.ReferencePipeline$3$1.accept(未知源) 在java.util.Spliterators$ArraySpliterator.tryAdvance处(未知源) 位于java.util.stream.ReferencePipeline.forEachWithCancel(未知源) 位于java.util.stream.AbstractPipeline.copyIntoWithCancel(未知源) 位于java.util.stream.AbstractPipeline.copyInto(未知源) 位于java.util.stream.AbstractPipeline.wrapAndCopyInto(未知源) 位于java.util.stream.FindOps$FindOp.evaluateSequential(未知源) 位于java.util.stream.AbstractPipeline.evaluate(未知源) 位于java.util.stream.ReferencePipeline.findFirst(未知源) 位于org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:125) 位于org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:73) 位于org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136) 位于org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83) 位于org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548) 位于org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:212) 位于org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:130) 位于org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:125) 位于org.openqa.selenium.firefox.FirefoxDriver(FirefoxDriver.java:103) 位于basicweb.FirefoxDriverDemo.main(FirefoxDriverDemo.java:17)
使用firefox版本56或61和gecko驱动程序版本0.21。并使用配置文件添加firefox选项

FirefoxOptions fo = new FirefoxOptions();
fo.setBinary("C:\\Users\\ChawlaSh\\AppData\\Local\\Mozilla Firefox\\firefox.exe");
ProfilesIni profile = new ProfilesIni();
FirefoxProfile myprofile = profile.getProfile("default");
fo.setProfile(myprofile);
driver = new FirefoxDriver(fo);
我希望这肯定会有所帮助。

此错误消息

Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Unable to find a matching set of capabilities
…表示您的程序无法创建新的Firefox浏览器会话


分析 有以下几个问题:

  • file.separator
    :分隔文件路径组件的字符。这是UNIX上的
    /
    和Windows上的
    \
    。你也需要逃离他们
  • 您的JDK版本是1.8.0_151,非常古老

解决方案
  • 使用
    file.separator
    作为另一个
    \
    转义
  • 将JDK升级到最新级别
  • 确保GeckoDriver Firefox映射

  • 您的有效代码块将是:

    WebDriver driver;
    System.setProperty("webdriver.gecko.driver", "D:\\Try out files\\geckodriver.exe");
    driver = new FirefoxDriver();
    String baseURL = "http://www.google.com";
    driver.get(baseURL);
    

尝试更新FF浏览器。有什么理由要求OP降级GeckoDriver吗?我在一个月前遇到了同样的问题,如果你查看GitHub上Mozilla发行版的页面,他们已经提到哪个gecko驱动程序与selenium和Firefox的哪个版本兼容,它对我来说工作得很好。