Help us understand the problem. What is going on with this article?

[初心者向け] JavaでSeleniumを動かす

More than 3 years have passed since last update.

Seleniumとは

ブラウザを自動で操作できるツールです.
ユーザの動作をエミュレートできるので,テストと組み合わせて使われることが多いです.

必要なもの

  • Java
  • Eclipse
  • Google Chrome

事前準備

ダウンロードするもの

  • Selenium
  • ChromeDriver

Seleniumのダウンロード

まずはSeleniumのダウンロードページで必要なライブラリを落とします.

image.png

今回はJavaなので,Javaの Download をクリックしましょう.
(クリックするとzipのダウンロードが始まります.)

ダウンロードが終わったら解凍しておきましょう.

image.png

client-combined-3.4.0-nodeps.jar がSelenium本体で, lib/ 以下に入っているものが依存ライブラリです.(Seleniumを動かすには lib/ 以下のものも全て必要です.)

libには JUnit も入っているので,これだけですぐ使えるようになります.

ChromeDriverのダウンロード

こちらもChromeDriverのダウンロードページでChromeDriverをダウンロードします.

現時点(2017/06/14)での最新版は2.30なので,これを落とします.

image.png

ChromeDriverのバージョンによってサポートしているChromeのバージョンが異なるので気をつけてください.(ChromeDriver2.30だとChrome v58-60)

image.png

OSに合わせたChromeDriverをダウンロードします.

落としたzipを解凍すれば,必要なもののダウンロードは完了です!

Seleniumを動かす

プロジェクトの準備

Eclipseを起動して新プロジェクトを作成します.(名前は selenium-sample にしました.)
まずは依存ファイル等を置くためのフォルダを作りましょう.

image.png

依存ファイルの配置

Selenium等の依存ライブラリを置くためのフォルダ(lib),ChromeDriverを置くためのフォルダ(exe)を作成しました.
次は各フォルダにファイルを配置していきましょう.

image.png

seleniumの lib/ 以下のものも全て同じフォルダに入れてしまいましょう.

ビルドパスを通す

次にビルドパスを通しましょう.

image.png

libに入れた全てのjarにビルドパスを通します.
適用(apply)の押し忘れに注意!

これでSeleniumを動かす準備ができたので,実際に動かしてみましょう.

Seleniumを動かす.

srcに新しいJavaClassを作成します.(名前はSampleTestにしました.)

今回はChromeDriverのGetting Startedにあるサンプルコードを使用します.

ChromeDriverへのpathだけ変更します.

Java
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class SampleTest {
    @Test
    public void testGoogleSearch() throws InterruptedException {
      // Optional, if not specified, WebDriver will search your path for chromedriver.
      System.setProperty("webdriver.chrome.driver", "./exe/chromedriver");

      WebDriver driver = new ChromeDriver();
      driver.get("http://www.google.com/xhtml");
      Thread.sleep(5000);  // Let the user actually see something!
      WebElement searchBox = driver.findElement(By.name("q"));
      searchBox.sendKeys("ChromeDriver");
      searchBox.submit();
      Thread.sleep(5000);  // Let the user actually see something!
      driver.quit();
    }
}

これであとは実行すれば動くと思います.ぜひ試してみてください.

トラブルシューティング

Seleniumが動かない.

上の通りやってみて動かない場合は,eclipseのエラーメッセージをみてください.

The driver is not executable.

(Macの人に多い)
ChromeDriverに実行権限がないのが原因ですので,実行権限を付与してください.

Execution file is not found

(Windowsの人に多い)
おそらくパスが通っていないので,パスを適切に設定してください.

最後に

こちらのレポジトリをcloneしてもらえればすぐ使えると思います.(chromedriverがMac用なので注意)

tsukakei
学生時代はスマホゲームやWebアプリの開発をしていました。今は株式会社イエソドでエンジニアをしています。Qiitaは多分あまりもう更新しません。
https://tsukakei1012.hatenadiary.jp/
udzuki
テスト自動化・自動プログラム修正に関する最先端技術を開発し,ソフトウェア開発者が創造的な仕事に集中できる社会の実現を目指す.
https://udzuki.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした