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


160

私はこれを試しました

WebDriver driver = new ChromeDriver();

しかし、私はエラーが出ています

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

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


selenium-javaを実行する前に、code.google.com / p / chromedriver / downloads / listからセレンクロムドライバーをダウンロードし、Eclipseの[Add External Jars]のライブラリに追加したかどうかがわかると、役に立ちます。コード。
Hemanth

回答:


252

次の場所から実行可能ドライバをダウンロードする必要があります: ChromeDriverダウンロード

次に、ドライバーオブジェクトを作成する前に、以下を使用するだけです(既に正しい順序で表示されています)。

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

これは、ChromeDriverドキュメンテーションの最も役立つガイドから抽出されました。


@aimbire:ちょっと私は同じ問題に直面しています。私はあなたが提案したのと同じことをしましたが、このエラーが発生しました。"java.lang.IllegalStateException:ドライバーの実行可能ファイルが存在しません:D:\ selenimPRJarg1 \ chromedriver.exe"何か不足していますか? "
kTiwari

ここdocs.seleniumhq.org/downloadからSelenium Standalone Serverをダウンロードし、jarファイルを依存関係としてJavaプロジェクトに追加する必要があります。
dikirill

4
これをどこで使用/入力しますか?System.setProperty( "webdriver.chrome.driver"、 "/ path / to / chromedriver"); WebDriverドライバー=新しいChromeDriver();
tijnn 2015年

1
私はこの質問へのすべての答えを探求しましたが、これだけが私のために働きました。(y)
16年

これは技術的には正しいですが、実際にコードでその環境変数を設定するべきではありません。これは、コードでパスをハードコーディングすることと同じです。環境変数は、コードを実行するマシンで設定する必要があります。これにより、各マシンが実行可能なchromeドライバーを一意の場所に保存できるようになりますが、すべてが機能します。
アルデスコ

21

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");

  }

 }

3
これは厄介なソリューションです。現在使用している場合は、変更することをお勧めします。
aimbire 2013年

1
ダウンロードリンクが古くなっています。
コーディング終了

このコードは、Google Chromeバージョン69.0.3497.100(公式ビルド)(64ビット)では機能しません。仲間に新しいコードを提案してください。これまでは、65.0.0バージョン未満の古いバージョンで動作していました
Mitesh Thakery 2018年

18

フォルダにchromeDriverをダウンロードし、このフォルダをPATH変数に追加する必要があります。コンソールを機能させるには、コンソールを再起動する必要があります。


8

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

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

その後は他の設定を行わなくても問題なく動作するはずです。


2
今までですbrew tap homebrew/cask && brew cask install chromedriver
luk2302

6

Chromeドライバーをインストールする必要があります。以下に示すように、ナゲットを使用してこのパッケージをインストールできます


1
これは1つかもしれませんが、NuGetのバージョンが古すぎます:2014年10月13日付けの2.10.0
Tiago Freitas Leal

3月23日に再び古くなりました。最新のChromeでは使用できません。
ウィレム2017年

6

以下のコードを使用して、Selenium Web-driverを使用する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();
    }
}

5

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


4
悪いアドバイス... pythonインストールを汚染しないでください
Corey Goldberg

また、OPはPythonを指定していませんでした
Corey Goldberg

4

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");

1

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

apt install chromium-chromedriver

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

pip install selenium

0

上記の答えはすべて正解です。以下は、問題と解決策の詳細です。

たとえばセレンのドライバコンストラクタ

WebDriver driver = new ChromeDriver();

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

これが例外の原因です(状態の確認メソッドに注意してください)

 /**
   *
   * @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));
    }
  }

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

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

以下は、ドライバサービスがドライバ実行可能ファイルを検索するコードスニペット(chromeおよびfirefox用)です。

クロム:

   @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"

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

ここに画像の説明を入力してください


0
To run Selenium WebDriver test cases in Chrome, follow these steps:


first of all set the property & chrome driver path

System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
then initialize the Chrome Driver's object

WebDriver driver = new ChromeDriver();
then pass the url into get method of WebDriver

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

0

バイナリを次のようにプロジェクトのリソースディレクトリに含めました。

src\main\resources\chrome\chromedriver_win32.zip
src\main\resources\chrome\chromedriver_mac64.zip
src\main\resources\chrome\chromedriver_linux64.zip

コード:

import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.SystemUtils;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

import java.io.*;
import java.nio.file.Files;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public WebDriver getWebDriver() throws IOException {
    File tempDir = Files.createTempDirectory("chromedriver").toFile();
    tempDir.deleteOnExit();
    File chromeDriverExecutable;

    final String zipResource;
    if (SystemUtils.IS_OS_WINDOWS) {
        zipResource = "chromedriver_win32.zip";
    } else if (SystemUtils.IS_OS_LINUX) {
        zipResource = "chromedriver_linux64.zip";
    } else if (SystemUtils.IS_OS_MAC) {
        zipResource = "chrome/chromedriver_mac64.zip";
    } else {
        throw new RuntimeException("Unsuppoerted OS");
    }

    try (InputStream is = getClass().getResourceAsStream("/chrome/" + zipResource)) {
        try (ZipInputStream zis = new ZipInputStream(is)) {
            ZipEntry entry;
            entry = zis.getNextEntry();
            chromeDriverExecutable = new File(tempDir, entry.getName());
            chromeDriverExecutable.deleteOnExit();
            try (OutputStream out = new FileOutputStream(chromeDriverExecutable)) {
                IOUtils.copy(zis, out);
            }
        }
    }

    System.setProperty("webdriver.chrome.driver", chromeDriverExecutable.getAbsolutePath());
    return new ChromeDriver();
}

-2

chromedriverのexeをダウンロードして、現在のプロジェクトの場所に解凍します。こちらのリンクから、chromedriverの最新バージョンをダウンロードできます。

https://sites.google.com/a/chromium.org/chromedriver/

ここでは、ブラウザを起動してURLに移動するための簡単なコードを示します。

System.setProperty("webdriver.chrome.driver", "path of chromedriver.exe");

WebDriver driver = new ChromeDriver();

driver.get("https://any_url.com");

chromedriverをダウンロードして解凍します。次に、プロジェクトにフォルダーを作成し、それにchromedriverという名前を付け、.exeファイルを保存します。このパスを使用します。これは簡単なコード例です。'コード' System.setProperty( "webdriver.chrome.driver"、System.getProperty( "user.dir")+ "\\ chromedriver \\ chromedriver.exe"); WebDriverドライバー=新しいChromeDriver(); driver.get( " google.co.in"); WebElement searchbox = driver.findElement(By.name( "q")); searchbox.sendKeys( "無料の最高のセレンビデオチュートリアル"); searchbox.submit();
vinay 2015

vinayがコメントした追加情報でこの回答を更新することを検討してください。
Ricardo Souza
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.