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");