1

シナリオ: ajax を使用してユーザーを検証するログイン ページがあり、無効なログインの場合、同じページにとどまります。

これが Gebで atを使用する正しい方法なのか、それとも即興でできるのか疑問に思っています。懸念:

  1. ハードコーディングされたタイムアウトなどでwaitForを使用しています。
  2. waitFor をatブロックに入れる必要がありますか?
  3. これを書くより良い方法はありますか?

仕様定義

def "perform invald login"()
{
    given: "I am at the login page"
    to LoginPage

    when : "I entered invalid data"
    loginForm.loginClientCode = "test"
    loginForm.loginSystemCode = "test"
    loginForm.loginUserId = "test"
    loginForm.loginPassword = "test"

    loginButton().click()

    then: "Log in attempt unsuccessful"
    at(LoginPage)
}

ページ オブジェクト

class LoginPage extends Page
{
    static url = "login/login.jsf";

    static at =
    {
        waitFor(10,0.5)
        {  $("div.ic-h1").text() == "User Authentication" }
    }

    static content =
    {
        loginForm
        {
            $("form",id: "loginForm")
        }

        loginButton
        {
            $("button", id: "loginButton")
        }

        statusMessages
        {
            $('div.ui-messages').text()
        }
    }
}
4

1 に答える 1