2016-06-28 9 views
0

私の機能には、チェックボックスがプロパティを無効にしてからtrueを返した場合にスクリプトを書きたいというシナリオが1つあります。behat mink extentionを使って無効な属性をチェックする方法は?

<input type="checkbox" class="checkbox-click" id="#checkbox-2" name="testcheck" value="where to go" disabled="disabled"> 

後、私がしようとしていたカスタムの一つですが、成功しません:

/** 
    * check for is disabled or not 
    * 
    * @Then /^I check for is disabled "([^"]*)"$/ 
    */ 
    public function isDisabled($selector) 
    { 
     $session = $this->getSession(); 
     $element = $session->getPage()->find(
      'xpath', 
      $session->getSelectorsHandler()->selectorToXpath('css', $selector) // just changed xpath to css 
     ); 

     $return = $element->getAttribute('disabled');  
    } 

私は致命的なエラーを得た:のgetAttributeは非オブジェクトで呼び出します。これは完璧なコードではありませんが、ここでは参考にしています。

+1

これまでに試したコードを追加してください。 –

+0

コードを追加しました。チェックしてください – Reshma

答えて

2

これは、エラーを処理しないために発生します。 Findメソッドは、要素が見つかった場合はオブジェクトを返し、そうでない場合はnullを返し、nullでgetAttributeを使用するとオブジェクトではないため致命的な例外が発生します。

nullかどうかを確認し、はいの場合は例外をスローする必要があります。

xpathにセレクタを使用する必要はありません。 属性が見つからない場合でも、エラーは発生しません。

検証では、要素に対してhasAttribute()メソッドを使用し、大文字と小文字を区別して例外をスローすることができます。 することはできません条件付き待機を使用することもできます。

関連する問題