Я использую Firefox 47.0 с Selenium 2.53. Недавно между Selenium и Firefox произошла ошибка, из-за которой код не работал. Одним из решений является использование драйвера Marionnette.
Я следовал инструкциям этого сайта, чтобы использовать этот новый драйвер с RemotWebDriver, но у меня все еще есть ошибка:
WARN - Исключение: Исключение в потоке "main" org.openqa.selenium.WebDriverException: путь к исполняемому файлу драйвера должен быть задан системным свойством webdriver.gecko.driver; Для получения дополнительной информации см. https://github.com/jgraham/wires. Последняя версия может быть загружена с....
Код, который я пробовал до сих пор, очень прост:
public class Test {
static WebDriver driver;
static Wait<WebDriver> wait;
public static void main(String[] args) throws MalformedURLException {
System.setProperty("webdriver.gecko.driver", "C:\\Selenium\\geckodriver.exe");
DesiredCapabilities cap = DesiredCapabilities.firefox();
cap.setCapability("marionette", true);
cap.setBrowserName("firefox");
driver = new RemoteWebDriver(new URL("http://192.168.117.135:5555/wd/hub"), cap);//true to enable the JS
wait = new WebDriverWait(driver, 3000);
final String url = "https://www.google.com/";
JavascriptExecutor js = (JavascriptExecutor) driver;
try {
driver.navigate().to(url);
} finally {
driver.close();
}
}
}
Я уверен, что путь к geckodriver.exe правильный, и я не вижу, где я сделал ошибку.
РЕДАКТИРОВАТЬ 1: я попробовал следующий код:
public class Test {
static WebDriver driver;
static Wait<WebDriver> wait;
public static void main(String[] args) throws MalformedURLException {
System.setProperty("webdriver.gecko.driver", "C:\\Selenium\\geckodriver.exe");
driver = new MarionetteDriver();
wait = new WebDriverWait(driver, 3000);
final String url = "https://www.google.com/";
JavascriptExecutor js = (JavascriptExecutor) driver;
try {
driver.navigate().to(url);
} finally {
driver.close();
}
}
}
и это работает, кажется, что проблема исходит от RemoteWebDriver и драйвера Gecko, у кого-нибудь есть новости по этому поводу?