org.openqa.selenium.SessionNotCreatedException: невозможно найти соответствующий набор возможностей при попытке запустить Firefox с Selenium v3.8.1

Я не могу запустить браузер Firefox с помощью geckodriver в Selenium 3.8.1

Это мой код

public class LoginTest {
    @SuppressWarnings("deprecation")
    @Test
    public static void logintest() {
        System.setProperty("webdriver.gecko.driver",
            "C:\\Users\\abc\\Downloads\\geckodriver.exe");
        DesiredCapabilities dc = DesiredCapabilities.firefox();
        dc.setCapability("marionnete", true);
        constants.driver = new FirefoxDriver(dc);
        constants.driver.get("https://www.amazon.in");
        constants.driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        constants.driver.manage().window().maximize();
    }

Я не могу понять, почему это не работает и всегда дает исключение

org.openqa.selenium.SessionNotCreatedException`: Unable to find a matching set of capabilities
Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12- 01T18:33:54.468Z'<br>
System info: host: 'ABC-VAIO', ip: '192.168.1.209', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_161'<br>
Driver info: driver.version: FirefoxDriver

2 ответа

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

org.openqa.selenium.SessionNotCreatedException: Unable to find a matching set of capabilities

... подразумевает, что FirefoxDriver не нашел соответствующий набор возможностей при запуске нового сеанса WebBrowser.

Вы используете Selenium Client v3.8.1, но в примечаниях к выпуску Selenium Client v3.7.0 четко сказано, что:

* Migrated from using `DesiredCapabilities` to either
  `MutableCapabilities` or (preferably) `ImmutableCapabilities`.

Итак, вы должны использовать merge() метод из MutableCapabilities Класс для добавления возможностей в экземпляре FirefoxOptions и передайте объект FirefoxOptions при инициализации браузера Firefox следующим образом:

System.setProperty("webdriver.gecko.driver", "C:\\Users\\abc\\Downloads\\geckodriver.exe");
DesiredCapabilities dc = DesiredCapabilities.firefox();
dc.setCapability("marionnete", true);
FirefoxOptions opt = new FirefoxOptions();
opt.merge(dc);
constants.driver = new FirefoxDriver(opt);
constants.driver.get("https://www.amazon.in");

Вы должны добавить возможности для Firefox. Пожалуйста, измените ваш код следующим образом:

System.setProperty("webdriver.gecko.driver", "C:\\Selenium\\geckodriver.exe");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities = DesiredCapabilities.firefox();
capabilities.setBrowserName("firefox");
capabilities.setVersion("your firefox version");
capabilities.setPlatform(Platform.WINDOWS);
capabilities.setCapability("marionette", false);
WebDriver driver = new FirefoxDriver(capabilities);
driver.get("https://www.amazon.in");
Другие вопросы по тегам