Skip to content

PitaliumのテストをSelenium IDEで作成する

by : 2016/02/26

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();

を差し込んでください。

From → テスト, Pitalium

コメントは停止中です。

%d人のブロガーが「いいね」をつけました。