org.openqa.selenium.SessionNotCreatedException: невозможно найти соответствующий набор возможностей с Selenium v3.14.0 и GeckoDriver v0.23.0 - PullRequest
0 голосов
/ 31 октября 2018

Мои версии: 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)

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Это сообщение об ошибке ...

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 до последних уровней JDK 8u191 .
  • Убедитесь, что GeckoDriver-Firefox Mapping

Geckodriver Releases

  • Ваш эффективный код блока будет:

    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);
    
0 голосов
/ 31 октября 2018

Используйте 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);

Надеюсь, это наверняка поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...