web-dev-qa-db-ja.com

ChromeでSelenium WebDriverテストケースを実行する方法

私はこれを試しました

WebDriver driver = new ChromeDriver();

しかし、私はエラーを取得しています

失敗したテスト:setUp(com.TEST):ドライバーの実行可能ファイルへのパスはwebdriver.chrome.driverシステムプロパティで設定する必要があります。詳細については、 ここのコード を参照してください。最新版は Link からダウンロードできます。

ChromeでSelenium-WebDriverテストケースをテストするにはどうすればよいですか。

149
Prince

実行可能ドライバは、次のサイトからダウンロードする必要があります。 ChromeDriver Download

それからあなたがする必要があるのはドライバオブジェクトを作成する前に以下を使うことです(すでに正しい順序で示されています):

System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
WebDriver driver = new ChromeDriver();

これは ChromeDriver Documentation から最も有用なガイドから抜粋されたものです。

236
aimbire

/からChromeドライバのアップデートバージョンをダウンロード Chromeドライバ 同様にリリースノートをお読みください ここ / chromeブラウザが更新された場合、あなたはそれが新しいとコンパクトできるので、上記のリンクから新しいchormedriverをダウンロードする必要がありますブラウザのバージョン.

 public class chrome 
 {

  public static void main(String[] args) {

       System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
       WebDriver driver = new ChromeDriver();


    driver.get("http://www.google.com");

  }

 }
21
Ankit jain

ChromeDriverをフォルダーにダウンロードして、このフォルダーをPATH変数に追加してください。うまく動くようにするにはコンソールを再起動する必要があります。

18
Fabrice31

MacOSで自作を使用している場合は、次のコマンドを使用できます。

(編集) brew tap homebrew/cask && brew cask install chromedriver

他の設定をしなくてもその後はうまくいくはずです。

8
swanhella

Selenium Webドライバを使用してChromeでテストケースを実行するには、以下のコードを使用できます。

import Java.io.IOException;
import org.openqa.Selenium.WebDriver;
import org.openqa.Selenium.chrome.ChromeDriver;

public class ChromeTest {

    /**
     * @param args
     * @throws InterruptedException
     * @throws IOException 
     */
    public static void main(String[] args) throws InterruptedException, IOException {
        // Telling the system where to find the Chrome driver
        System.setProperty(
                "webdriver.chrome.driver",
                "E:/chromedriver_win32/chromedriver.exe");

        WebDriver webDriver = new ChromeDriver();

        // Open google.com
        webDriver.navigate().to("http://www.google.com");

        String html = webDriver.getPageSource();

        // Printing result here.
        System.out.println(html);

        webDriver.close();
        webDriver.quit();
    }
}
6

最新バージョンのchromedriverhere を見つけてください。ダウンロードしたら、あなたのPythonインストールのルート(例えばC:/Program Files/Python-3.5)に解凍してください。あなたはどこにでもパスを指定したり、あなたのパスにchromedriverを追加したりする必要さえありません。私はちょうどクリーンなPythonのインストールでそれをやったそしてそれは動作します。

6
tagoma

あなたはクロムドライバをインストールする必要があります。以下に示すように、このパッケージをnuggetを使ってインストールできます。

6
Prathap Kudupu

最新バージョンのchromeドライバをダウンロードして、このコードを使用してください。

System.setProperty("webdriver.chrome.driver", " path of chromedriver.exe");
WebDriver driver= new ChromeDriver();
driver.manage().window().maximize();
Thread.sleep(10000);
driver.get("http://stackoverflow.com");
4
Anuj Teotia

上記の答えはすべて正解です。以下は、問題と解決策についての詳細な説明です。

例えばSeleniumのドライバコンストラクタ

WebDriver driver = new ChromeDriver();

ドライバの実行可能ファイルを検索します。この場合、chromeドライバは、クロムのドライバ実行可能ファイルを検索します。サービスが実行可能ファイルを見つけることができない場合、例外がスローされます。

これは例外が発生する場所です(check stateメソッドに注意してください)

 /**
   *
   * @param exeName Name of the executable file to look for in PATH
   * @param exeProperty Name of a system property that specifies the path to the executable file
   * @param exeDocs The link to the driver documentation page
   * @param exeDownload The link to the driver download page
   *
   * @return The driver executable as a {@link File} object
   * @throws IllegalStateException If the executable not found or cannot be executed
   */
  protected static File findExecutable(
      String exeName,
      String exeProperty,
      String exeDocs,
      String exeDownload) {
    String defaultPath = new ExecutableFinder().find(exeName);
    String exePath = System.getProperty(exeProperty, defaultPath);
    checkState(exePath != null,
        "The path to the driver executable must be set by the %s system property;"
            + " for more information, see %s. "
            + "The latest version can be downloaded from %s",
            exeProperty, exeDocs, exeDownload);

    File exe = new File(exePath);
    checkExecutable(exe);
    return exe;
  }

以下は、例外をスローするチェック状態メソッドです。

  /**
   * Ensures the truth of an expression involving the state of the calling instance, but not
   * involving any parameters to the calling method.
   *
   * <p>See {@link #checkState(boolean, String, Object...)} for details.
   */
  public static void checkState(
      boolean b,
      @Nullable String errorMessageTemplate,
      @Nullable Object p1,
      @Nullable Object p2,
      @Nullable Object p3) {
    if (!b) {
      throw new IllegalStateException(format(errorMessageTemplate, p1, p2, p3));
    }
  }

_ solution _ :次のようにドライバオブジェクトを作成する前にシステムプロパティを設定します。

System.setProperty("webdriver.gecko.driver", "path/to/chromedriver.exe");
WebDriver driver = new ChromeDriver();

以下は、ドライバーサービスがドライバーの実行可能ファイルを検索するコードスニペット(クロムとFirefox用)です。

Chrome:

   @Override
    protected File findDefaultExecutable() {
      return findExecutable("chromedriver", CHROME_DRIVER_EXE_PROPERTY,
          "https://github.com/SeleniumHQ/Selenium/wiki/ChromeDriver",
          "http://chromedriver.storage.googleapis.com/index.html");
    }

FireFox:

@Override
 protected File findDefaultExecutable() {
      return findExecutable(
        "geckodriver", GECKO_DRIVER_EXE_PROPERTY,
        "https://github.com/mozilla/geckodriver",
        "https://github.com/mozilla/geckodriver/releases");
    }

cHROME_DRIVER_EXE_PROPERTY = "webdriver.chrome.driver"およびGECKO_DRIVER_EXE_PROPERTY = "webdriver.gecko.driver"

他のブラウザの場合も同様です。以下は利用可能なブラウザ実装のリストのスナップショットです。

enter image description here

0
chuha.billi

Ubuntuでは、chromium-chromedriverパッケージをインストールするだけです。

apt install chromium-chromedriver

これにより、古いSeleniumバージョンもインストールされることに注意してください。最新のSeleniumをインストールするには:

pip install Selenium
0
serv-inc