私は次のようなPage
クラスを持っています
class SignUpPage extends Page {
static url = "signup"
static at = { waitFor { title.startsWith("Join") } }
static content = {
firstNameField { $("input", name:"firstName") }
lastNameField { $("input", name:"lastName") }
emailField { $("input", name:"email") }
passwordField { $("input", name:"password") }
}
}
populateFields
このクラスにメソッドを追加したいと思います。これにより、このメソッドを呼び出して、テストケースのテキストフィールドにデータを入力できるようになります。このメソッドには1つの引数が渡されます。これMap
により、テストケースから必要に応じて特定のフィールド値をオーバーライドできます。
問題は、ページの「コンテンツ」を反復処理する方法がわからないことです。これをより明確にするために、以下のコードを見てください。
class SignUpPage extends Page {
static url = "signup"
// .. as defined above ..
def populateFields(customValues = [:]) {
// I want to iterate of the textFields here
// Something like...
textFields = this.metaclass.methods.findAll {
it.name.endsWith("Field")
}
textFields.each {
// populate with data
}
}
}
これは機能しません。
クロージャーのコンテンツ「コンテンツ」を取得するにはどうすればよいですか?