SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

WebDriverの採用で生まれ変わったOSSのブラウザテストツール「Selenium 2」入門

実践! PageObjectパターンによる「Selenium2」テストケース改善チュートリアル

WebDriverの採用で生まれ変わったOSSのブラウザテストツール「Selenium2」入門 第4回

  • X ポスト
  • このエントリーをはてなブックマークに追加

6. PageObjectパターンによる型安全なテストケース

 最後に、PageObjectパターンの利点をもう一つ実感するために、サンプルアプリケーションに対して「はじめてログインしたユーザーはパスワード変更画面に遷移させたい」という仕様変更が発生したとしましょう。

  • パスワード変更画面
    • タイトルは「Password」
    • 古いパスワードと新しいパスワード、確認用の新しいパスワードを入力してパスワードを変更する
    • パスワード変更に失敗するとパスワード変更画面に遷移する
    • パスワード変更に成功するとホーム画面に遷移する
図6. 仕様変更後画面遷移図
図6. 仕様変更後画面遷移図
図7. パスワード変更画面
図7. パスワード変更画面

 仕様変更対応後のアプリケーションはこちらにデプロイしてあります。

6.1. PasswordPage

 新しく追加されたパスワード変更画面を表すPasswordPageクラスは、下記のとおりです。

PasswordPage.java
package com.example.pages;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.CacheLookup;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;

public class PasswordPage {

    private final WebDriver driver;

    @FindBy(name = "oldpassword")
    @CacheLookup
    private WebElement oldpassword;

    @FindBy(name = "newpassword1")
    @CacheLookup
    private WebElement newpassword1;

    @FindBy(name = "newpassword2")
    @CacheLookup
    private WebElement newpassword2;

    @FindBy(xpath = "//button[@type='submit']")
    @CacheLookup
    private WebElement updateButton;

    public PasswordPage(WebDriver driver) {
        this.driver = driver;
        PageFactory.initElements(driver, this);
    }

    public PasswordPage typeOldPassword(String key) {
        oldpassword.sendKeys(key);
        return this;
    }

    public PasswordPage typeNewPassword1(String key) {
        newpassword1.sendKeys(key);
        return this;
    }

    public PasswordPage typeNewPassword2(String key) {
        newpassword2.sendKeys(key);
        return this;
    }

    public HomePage submitUpdateExpectingSuccess() {
        updateButton.click();
        return new HomePage(driver);
    }

    public PasswordPage submitUpdateExpectingFailure() {
        updateButton.click();
        return new PasswordPage(driver);
    }
}

 特に難しいところはないと思います。古いパスワードと新しいパスワード、確認用の新しいパスワードを入力するinputフィールドがあり、更新ボタンがあります。

 パスワード変更に成功した場合はホーム画面に、失敗した場合はパスワード変更画面に遷移します。

次のページ
7. 終わりに

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
WebDriverの採用で生まれ変わったOSSのブラウザテストツール「Selenium 2」入門連載記事一覧

もっと読む

この記事の著者

梅澤 雄一郎(株式会社DTS)(ウメザワ ユウイチロウ)

株式会社DTS 産業事業部所属。playframeworkドキュメント翻訳サイト 管理人。主にJavaによるWebアプリケーション開発に従事。酒好き。 はてなブログ ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7527 2013/12/13 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング