初めての Selenium Web Driver with Java
※このコンテンツの最新版はここにあります。
Java で Selenium Web Driver を操作するシンプルサンプルです。Selenium 2.53 で動作確認を取りました。
import static org.junit.Assert.assertEquals; import java.util.concurrent.TimeUnit; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.By.ByClassName; import org.openqa.selenium.By.ById; import org.openqa.selenium.By.ByLinkText; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class SimpleSeleniumTest { @Test public void test001() throws Exception { // ライブラリパスに selenium-server-standalone-2.53.1.jar を設定 // Selenium の WebDriver について、ローカルディスクの Chrome Driver を設定 System.setProperty("webdriver.chrome.driver", "/home/user1/デスクトップ/installed/chromedriver"); // Web ブラウザを起動 final WebDriver browser = new ChromeDriver(); // 基本タイムアウト時間を設定 browser.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); // 所定の URL を開く browser.get("http://なにかURL.com/"); assertEquals("遠吠え! HAWAI", browser.getTitle()); { final WebElement eleAnchor = browser.findElement(ByLinkText.linkText("無料アイデンティファイ活用")); eleAnchor.click(); assertEquals("遠吠え! HAWAI アイデンティファイ・ガイド", browser.getTitle()); } Thread.sleep(1000); { final WebElement eleLoginDiv = browser.findElement(ByClassName.className("yjmthloginarea")); final WebElement eleLoginLink = eleLoginDiv.findElement(By.linkText("ログイン")); eleLoginLink.click(); assertEquals("ログイン - 遠吠え! HAWAI", browser.getTitle()); } Thread.sleep(1000); { final WebElement eleName = browser.findElement(ById.id("username")); eleName.sendKeys("メールアドレス"); final WebElement elePass = browser.findElement(ById.id("passwd")); elePass.sendKeys("password"); final WebElement eleCheck = browser.findElement(ById.id("persistent")); if (eleCheck.isSelected()) { // チェックボックスにチェックがあればこれを外す eleCheck.click(); } Thread.sleep(1000); final WebElement eleLogin = browser.findElement(ById.id(".save")); eleLogin.click(); assertEquals("遠吠え! HAWAI アイデンティファイ・ガイド", browser.getTitle()); } // ログイン作業を終了 { final WebElement eleLoginDiv = browser.findElement(ByClassName.className("yjmthloginarea")); final WebElement eleStrong = eleLoginDiv.findElement(By.tagName("strong")); System.out.println(eleStrong.getText()); } Thread.sleep(5000); // Webブラウザを閉じる browser.quit(); } }