2016-06-01 10 views
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である対応するクラスを介して、要素を定義してアクセスする必要があります。

答えて

1

$("input",name:"")セレクタが動作している場合、このように、ページオブジェクトのものを入れてみてください:

class LoginPage extends Page { 
    static at = { title == "XXX" } 
    static content = { 
     username(wait:true) { $("input",name:"mailAddress") } 
     password(wait:true) { $("input",name:"password") } 
    }  
} 
+0

私は、XPathにより、複雑な要素の選択が必要な場合は、どのように私はXPathをより使用する必要がありますか? –

+0

[xpathセレクタ](http://www.gebish.org/manual/current/#using-webdriver-s-code-by-code-class-selectors)を使うことができますが、この場合のxpath何らかの理由で間違っていました。 –

+0

FirefoxブラウザでXPathをFirebugで検証しても問題ありません。それが私が混乱した理由です。 JQueryセレクターの代わりにXPathを使用する回避策を探しています。 –

関連する問題