top / index / prev / next / target / source
日記形式でつづる いがぴょんコラム ウェブページです。
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();
}
}