Selenium 2.53 で Firefox 47.0 を使用しています。最近、コードが機能しない Selenium と Firefox の間のバグでした。解決策の 1 つは、マリオネット ドライバーを使用することです。
このサイトの指示に従って、この新しいドライバーを RemotWebDriver で使用しましたが、エラーが発生し続けます。
警告 - 例外: スレッド「メイン」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ドライバーにあるようです。ニュースをお持ちの方はいますか?