J'utilise Firefox 47.0 avec Selenium 2.53. Récemment, il y a eu un bug entre Selenium et Firefox qui fait que le code ne fonctionne pas. Une des solutions est d'utiliser le pilote Marionnette.
J'ai suivi les instructions de ce site pour utiliser ce nouveau pilote avec un RemotWebDriver mais je continue à avoir l'erreur :
WARN - Exception : Exception dans le thread "main" org.openqa.selenium.WebDriverException : Le chemin vers l'exécutable du pilote doit être défini par la propriété système webdriver.gecko.driver ; pour plus d'informations, voir https://github.com/jgraham/wires . La dernière version peut être téléchargée à partir de ....
Le code que j'ai essayé jusqu'à présent est très simple :
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();
}
}
}
Je suis sûr que le chemin vers le geckodriver.exe est correct et je ne vois pas où j'ai fait l'erreur.
EDIT 1 : J'ai essayé le code suivant :
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();
}
}
}
et ça marche, il semble que le problème vienne du RemoteWebDriver et du pilote gecko, quelqu'un a-t-il des nouvelles à ce sujet ?