PitaliumはSelenium WebDriverに機能追加していますので、Selenium IDEを使ってテストケースを作成できます。
要点としては、エクスポートの形式として Java / JUnit 4 / WebDriver を選択すると言うことです。
出力すると、次のようなコードが生成されます。 この中で必要なのは @Test 以下になります。
package com.example.tests;
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
public class Test {
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void test() throws Exception {
driver.get(baseUrl + “/ja/tutorial/todo/”);
driver.findElement(By.id(“txtTodo”)).clear();
driver.findElement(By.id(“txtTodo”)).sendKeys(“タスク”);
driver.findElement(By.id(“btnRegist”)).click();
driver.findElement(By.xpath(“(//input[@type=’checkbox’])[4]”)).click();
driver.findElement(By.cssSelector(“#sizzle1453688248661 > td.content > span”)).click();
driver.findElement(By.name(“content”)).clear();
driver.findElement(By.name(“content”)).sendKeys(“本を返却します”);
driver.findElement(By.id(“btnUpdate”)).click();
}
@After
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!””.equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
private boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
private boolean isAlertPresent() {
try {
driver.switchTo().alert();
return true;
} catch (NoAlertPresentException e) {
return false;
}
}
private String closeAlertAndGetItsText() {
try {
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
if (acceptNextAlert) {
alert.accept();
} else {
alert.dismiss();
}
return alertText;
} finally {
acceptNextAlert = true;
}
}
}
抜き出すと次のようになります。
driver.get(baseUrl + “/ja/tutorial/todo/”);
driver.findElement(By.id(“txtTodo”)).clear();
driver.findElement(By.id(“txtTodo”)).sendKeys(“タスク”);
driver.findElement(By.id(“btnRegist”)).click();
driver.findElement(By.xpath(“(//input[@type=’checkbox’])[4]”)).click();
driver.findElement(By.cssSelector(“#sizzle1453688248661 > td.content > span”)).click();
driver.findElement(By.name(“content”)).clear();
driver.findElement(By.name(“content”)).sendKeys(“本を返却します”);
driver.findElement(By.id(“btnUpdate”)).click();
この中でも sizzle1453688248661
といった指定は他で動かない可能性が高い(実際に動かなかった)ので除外します。後は自由に assertionView.assertView("PageName");
を入れていくだけでテストスクリプトができあがります。
注意点としては、Selenium IDEで作ったテストは一瞬で流れてしまうので適度にwaitを入れる必要があります。Pitaliumでページ読み込み完了まで待つには? | hifive開発者ブログを参考に、
PtlWebDriverWait wait = new PtlWebDriverWait(driver, 30);
wait.untilLoad();
を差し込んでください。
コメントは受け付けていません。