[解決済み] ドライバの実行ファイルのパスは、webdriver.gecko.driver システムプロパティで設定する必要があります。
質問事項
Seleniumを使用しています。
3.3.1
で、以下のコードをテストしています。
実行後、以下のエラーが表示されます。
スレッド "main" java.lang.IllegalStateException で例外が発生しました。パス ドライバの実行ファイルは webdriver.gecko.driver で設定する必要があります。 システムプロパティを参照してください。 https://github.com/mozilla/geckodriver . 最新版は からダウンロードできます。 https://github.com/mozilla/geckodriver/releases で com.google.common.base.Preconditions.checkState(Preconditions.java:738) で org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:111) で org.openqa.selenium.firefox.GeckoDriverService.access$100(GeckoDriverService.java:38) で org.openqa.selenium.firefox.GeckoDriverService$Builder.findDefaultExecutable(GeckoDriverService.java:112) で org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:302) で org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:233) で org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:125) で org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:121) at Selenium_login.(Selenium_login.java:13) at Selenium_login.main(Selenium_login.java:70)です。 /home/ali/.cache/netbeans/dev/executor-snippets/run.xml:53: Java returned: 1 BUILD FAILED (総時間: 0秒)
Javaコードです。
import java.io.*;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Selenium_login {
public WebDriver driver = new FirefoxDriver();
/**
* Open the test website.
*/
public void openTestSite() {
driver.navigate().to("http://testing-ground.scraping.pro/login");
}
/**
*
* @param username
* @param Password
*
* Logins into the website, by entering provided username and
* password
*/
public void login(String username, String Password) {
WebElement userName_editbox = driver.findElement(By.id("usr"));
WebElement password_editbox = driver.findElement(By.id("pwd"));
WebElement submit_button = driver.findElement(By.xpath("//input[@value='Login']"));
userName_editbox.sendKeys(username);
password_editbox.sendKeys(Password);
submit_button.click();
}
/**
* grabs the status text and saves that into status.txt file
*
* @throws IOException
*/
public void getText() throws IOException {
String text = driver.findElement(By.xpath("//div[@id='case_login']/h3")).getText();
Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("status.txt"), "utf-8"));
writer.write(text);
writer.close();
}
/**
* Saves the screenshot
*
* @throws IOException
*/
public void saveScreenshot() throws IOException {
File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("screenshot.png"));
}
public void closeBrowser() {
driver.close();
}
public static void main(String[] args) throws IOException {
Selenium_login webSrcaper = new Selenium_login();
webSrcaper.openTestSite();
webSrcaper.login("admin", "12345");
webSrcaper.getText();
webSrcaper.saveScreenshot();
webSrcaper.closeBrowser();
}
}
解決方法は?
を使用する必要があります。
ゲッコードライバ
は、Selenium 3.0 以降の Firefox と対話するために使用します。ダウンロード
ゲッコードライバ
から
ギズーブ
お使いのOSに合わせ、解凍してください。
geckodriver.exe
をフォルダにコピーしてください。
初期化の前に次の行を追加します。
WebDriver
:
System.setProperty("webdriver.gecko.driver","c:/your/path/to/geckodriver.exe");
WebDriver driver = new FirefoxDriver();
...
関連
-
[解決済み] hibernateでResultSetを抽出できない。
-
[解決済み】Doubleはdereferencedできない?
-
[解決済み】不正な反射的アクセスとは?
-
[解決済み】-XX:MaxPermSizeは何をするのですか?
-
[解決済み】「java -cp」と「java -jar」の違い?
-
[解決済み】Javaを使用するSelenium - ドライバの実行ファイルのパスは、webdriver.gecko.driverシステムプロパティで設定する必要があります。
-
[解決済み】Java Error "Exception in thread "main" java.util.InputMismatchException" Array プログラムで発生。
-
[解決済み】Javaの".class expected "について
-
[解決済み】Eclipseで「パッケージエクスプローラー」ビューが見つからない
-
[解決済み】Pythonを使用したSelenium - Geckodriverの実行ファイルがPATHにある必要があります。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Android Studio クラス org.codehaus.groovy.runtime.InvokerHelper を初期化できませんでした。
-
[解決済み】Doubleはdereferencedできない?
-
[解決済み】-XX:MaxPermSizeは何をするのですか?
-
[解決済み】Gradleがtools.jarを見つけ出さない
-
[解決済み】Javaを包含するクラスではないのか?
-
[解決済み】Java Error "Exception in thread "main" java.util.InputMismatchException" Array プログラムで発生。
-
[解決済み】Javaのswitch文。定数式が必要だが、定数である
-
[解決済み] StringBuilderをクリアまたは空にするにはどうすればよいですか?重複] [重複] [重複] [重複] [重複] [重複
-
[解決済み] エラー - trustAnchors パラメータは空であってはなりません。
-
[解決済み】Javaの".class expected "について