Seleniumとは
ブラウザを自動で操作できるツールです.
ユーザの動作をエミュレートできるので,テストと組み合わせて使われることが多いです.
必要なもの
- Java
- Eclipse
- Google Chrome
事前準備
ダウンロードするもの
- Selenium
- ChromeDriver
Seleniumのダウンロード
まずはSeleniumのダウンロードページで必要なライブラリを落とします.
今回はJavaなので,Javaの Download をクリックしましょう.
(クリックするとzipのダウンロードが始まります.)
ダウンロードが終わったら解凍しておきましょう.
client-combined-3.4.0-nodeps.jar がSelenium本体で, lib/
以下に入っているものが依存ライブラリです.(Seleniumを動かすには lib/
以下のものも全て必要です.)
libには JUnit
も入っているので,これだけですぐ使えるようになります.
ChromeDriverのダウンロード
こちらもChromeDriverのダウンロードページでChromeDriverをダウンロードします.
現時点(2017/06/14)での最新版は2.30なので,これを落とします.
ChromeDriverのバージョンによってサポートしているChromeのバージョンが異なるので気をつけてください.(ChromeDriver2.30だとChrome v58-60)
OSに合わせたChromeDriverをダウンロードします.
落としたzipを解凍すれば,必要なもののダウンロードは完了です!
Seleniumを動かす
プロジェクトの準備
Eclipseを起動して新プロジェクトを作成します.(名前は selenium-sample
にしました.)
まずは依存ファイル等を置くためのフォルダを作りましょう.
依存ファイルの配置
Selenium等の依存ライブラリを置くためのフォルダ(lib),ChromeDriverを置くためのフォルダ(exe)を作成しました.
次は各フォルダにファイルを配置していきましょう.
seleniumの lib/
以下のものも全て同じフォルダに入れてしまいましょう.
ビルドパスを通す
次にビルドパスを通しましょう.
libに入れた全てのjarにビルドパスを通します.
適用(apply)の押し忘れに注意!
これでSeleniumを動かす準備ができたので,実際に動かしてみましょう.
Seleniumを動かす.
srcに新しいJavaClassを作成します.(名前はSampleTestにしました.)
今回はChromeDriverのGetting Startedにあるサンプルコードを使用します.
ChromeDriverへのpathだけ変更します.
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用なので注意)