2016-04-05 3 views
0

: - 名前だけを使用してbook of gebこのようななどのテキスト入力フィールドなどのフォーム要素に簡単にアクセスすることが可能である必要がありそうです。ゲブフォームコントロールのショートカット - ここで予約するゲブのガイドラインに従ってHOWTO

例は、しかし、完全な例を言及しなかった、と私はそれが仕事を得るように見えることはできません。この構造はどのように似ていると思われますか?

特定塩基とモジュール想像 - フォームそれ自己 - コンテンツセクション内と相互作用するフォーム要素の、リストを(名前で指定):

class MyFormModule extends Module { 
    static base = { $('form#myForm') } 
    static content = { 
     mytextfield { textfield.mytextfield } 
    } 
} 

これは、「GEB触発され"本の例。 "textfield"は有効なプロパティではないため、明らかに機能しません。

は、上記のようなdooingのための任意のショートカットはありますか? - 名前にドットを付けることができる必要があります。 (私はセレクタを書くことができますが、これは "フォームコントロールのショートカット"に関する質問です)...

答えて

1

あなたのコンテンツ定義がtextarea要素を返すようにしたいのであれば、この方法ではなくプロパティとメソッド名のコールはドットが含まれているので、あなたの要素は、メソッド名を引用する必要があり、その名にドットを持っていることを考える:

class MyFormModule extends Module { 
    static base = { $('form#myForm') } 
    static content = { 
     mytextfield { "textfield.mytextfield"() } 
    } 
} 

ゲブも設定し、アクセスするためのショートカットを持っていることを考えるとページおよびモジュール内容として定義された要素の値は、(あなたがするリンクセクションの最後で説明)と、以下のページクラス:

class MyPage extends Page { 
    static content = { 
     myform { module(MyFormModule) } 
    } 
} 

あなたは次のことが可能です。

go MyPage 
form.mytextfield = "foo" 
assert form.mytextfield == "foo" 

第二に、フォームコントロールのショートカットを使用して(モジュールのコンテンツの定義を使用せずに)モジュールに直接textfield.mytextfieldを名前付き要素の値にアクセスして設定することができます。

go MyPage 
form."textarea.mytextfield" = "foo" 
assert form."textarea.mytextfield" == "foo" 
+0

はまさに私は私が行うことができるだろう期待したもののような音 - それはウル返事をお寄せいただきありがとうございます:)働く場合、私は、それを試してみると、いくつかの投票で返されます! – Hoof

関連する問題