2017-08-04 8 views
0

私は、チェックボックスをエミュレートするページにspan要素を持っています。このチェックボックスがチェックされているかどうかは、要素に何らかのクラスを与えることによって設定されます。私は、返されたオブジェクトを飾るための方法を探しています返されたGeb Navigatorをインタフェースでラップする

class MyPage extends page { 

    def getCheckbox(String searchStr) { 
     $("div.parent").find(".class-a", text: searchStr) 
    } 
    def myFunc() { 
     def cb = getCheckbox("foo") 
     if (cb.has(".class-B") { 
      // checkbox is ticked. do something... 
     } 
    } 
} 

:私のページで

は、私は$()セレクタを使用して、この要素(IEナビゲーターインスタンス)を返すメソッドを持っていますgetCheckbox()から、クライアントが

任意の提案を(組み込みcheckboxフォームコントロールモジュールと同様のインターフェースを実現するためにIE)の代わりに、より-あいまいhas(".class-B")cb.isChecked()を行うことができ、チェックボックスの状態を確認したいように? ありがとう!次に、あなただけの「CheckBoxNavigator」としてあなたのチェックボックス要素を定義する必要があり、その後、あなたはspan要素をエミュレートisChecked()

+0

'.has("。class-B ")'をラップし、それを呼び出す 'isChecked(Navigator cb)'というメソッドを作ることができます。この場合、ナビゲータインターフェイスをオーバーライドする方法もあります独自のナビゲータメソッドを作成できます。そのような単純なことのための複雑な解決策のように思えますが、それがあなたのものであれば、Navigatorインターフェイスをどのように上書きできるかを示す質問に答えることができます。これは、cbがNavigatorであると仮定して、cb.isChecked()のようなものを呼び出すための私が知っている唯一の方法です。 – switch201

答えて

0

a Geb module - ラッパーに存在させたいメソッドを持つモジュールクラスを定義し、それをspan要素を表すナビゲータのナビゲータのmodule()メソッドに渡します。

1

あなたのチェックボックスがなるための最有力候補である使用することができます

class CheckBoxNavigator extends NonEmptyNavigator { 
    def isChecked(){ 
     return this.has(".class-B") 
    } 
} 

:どのようにこの程度

関連する問題