2016-11-17 7 views
0

初めてcheckField()を使用しようとしていますが、チェックボックスがありますがチェックはしていません。checkField()はbehat minkをチェックしません

HTML:コードで

<label> 
    <input class="sr-only" value="on" type="checkbox"> 
    <span>I want an open return</span> 
<label> 

はルック:

$this->getSession()->getPage()->checkField("I want an open return"); 

私もそれを試してみてください。

$this->getSession()->getPage()->find("css", "input[type=checkbox].sr-only")->check(); 

Bothsはエラーを返しませんが、私は見ることができますテストを実行すると、チェックボックスはチェックされません。予想通り

フォローコードリターンブール値(偽):

$this->getSession()->getPage()->find("css", "input[type=checkbox].sr-only")->isChecked(); 
+0

見つかった要素が入力チェックボックスになっていることを確認してください。可能であれば、この要素のhtmlを追加してください。 – lauda

+0

私は今多くの情報を入れています:) –

+0

チェックボックスをオンにしてチェックを入れた後にブレークポイント/スリープを追加し、チェックされているかどうかを確認します。 – lauda

答えて

0

checkField()true/falseがある場合、これは、要素のvalue属性に依存しているとあなたが評価するのに失敗しますon/offを持っているので、動作しない可能性がありますチェックボックスのステータスは、check()と同じです。あなたが要素とclick()を見つけることができますcheckに代わるものとして

find("css", "input[type=checkbox].sr-only")->click(); 

isChecked()でチェックされているかどうかの確認は、同じ理由で失敗します。

value属性の値を取得し、onまたはoffがある場合はチェックし、必要に応じて例外をスローするか、ステータスを返すなど、カスタム検証を行う必要があります。心に留めておくべき

もの:
- ページを検査し、セレクタが 大丈夫ですかどうかをチェック - あなたは 必要がある1つがあるセレクタが唯一の要素、またはリスト内で最初に見つかった要素を見つけたことを確認してください - を確認してください 必要な場合は、要素を待つ - 使用ページが オブジェクト - このクリック/チェックがPageオブジェクトを拡張する必要がありますし、行は次のようになります含むクラス:最後に

$this->find("css", "input[type=checkbox].sr-only")->click(); 
+0

はい、私はbehatバージョン3.2.1を使用しています しかし、私が使用しようとしたとき $ this-> find( "css"、 "input [type = checkbox]。(Behat \ Testwork \ Call \ Exception \ FatalThrowableError) –

+0

はい、そのクラスが拡張しているかどうかによって異なります。そのセレクタがページ内の1つまたは複数の要素を検出したかどうかを確認しましたか? – lauda

+0

var_dump($ this-> getSession() - > getPage() - > find( "css "、" input [type = checkbox] .sr-only "))); 返品する:[https://codeshare.io/2jklK5] 返品は分かりません –

0

、それは「変更後、作品です次のコード行を使用して「入力」を「ラベル」に変更します。

上記の2つのdiv名があるため、私のチェックボックス入力は2つのdiv内にあります。

=)

関連する問題