2
私は以下のようなログインページ用に別のクラスを作成しました:ゲブ:入力フィールドに設定されたテキスト
class LoginPage extends Page{
static at = { title == "XXX" }
static content = {
username(wait:true) { $(By.xpath('//input[@name="mailAddress"]'))}
password(wait:true) { $(By.xpath('//input[@name="password"]'))}
}
}
そして今、次のコードでHomePageLoginと呼ばれる別のクラスから提出されたユーザー名とパスワードにアクセス:
をBrowser.drive {
to LoginPage
at LoginPage
report "AtLoginPage"
username.value("username")
password.value("password")
}
しかし、次のエラー取得:私はユーザ名を設定するにはどうすればよい
Caught: groovy.lang.MissingPropertyException: No such property: username for class: MyPackage.HomePageLogin
groovy.lang.MissingPropertyException: No such property: username for class: MyPackage.HomePageLogin
at MyPackage.HomePageLogin$_run_closure1.doCall(HomePageLogin.groovy:18)
at MyPackage.HomePageLogin$_run_closure1.doCall(HomePageLogin.groovy)
at geb.Browser.drive(Browser.groovy:1061)
at geb.Browser$drive$0.callStatic(Unknown Source)
at geb.Browser.drive(Browser.groovy:1031)
at geb.Browser$drive.call(Unknown Source)
at MyPackage.HomePageLogin.run(HomePageLogin.groovy:12)
をとパスワード?
私は次のコードでHomePageLoginクラスに名前とパスワードを設定することができます。
Browser.drive {
to LoginPage
at LoginPage
report "AtLoginPage"
$("input",name:"mailAddress").value("ID")
$("input",name:"password").value("pass")
}
しかし、私は、インラインスクリプトを望んでいません。この場合、LoginPageである対応するクラスを介して、要素を定義してアクセスする必要があります。
私は、XPathにより、複雑な要素の選択が必要な場合は、どのように私はXPathをより使用する必要がありますか? –
[xpathセレクタ](http://www.gebish.org/manual/current/#using-webdriver-s-code-by-code-class-selectors)を使うことができますが、この場合のxpath何らかの理由で間違っていました。 –
FirefoxブラウザでXPathをFirebugで検証しても問題ありません。それが私が混乱した理由です。 JQueryセレクターの代わりにXPathを使用する回避策を探しています。 –