2016-08-02 5 views
0

Webseiteに表示されるcssセレクタの数をテストする必要があります。 私は自分の状態にマッチするノードを持つ巨大な配列だけをgehtします。私は、配列内の行をカウントすると は、私が「5」を取得するが、それは「3」Behat MinkExtensionトラバース、cssセレクタのカウント

私のコードでschould:

/** 
* @Then /^I should see more then one css slider-selector "([^"]*)"$/ 
* @Then /^I should see more then one CSS slider-selector "([^"]*)"$/ 
*/ 
public function iShouldSeeMoreThenOneCssSliderSelector($css_selector) { 
    $nodes = $this->getSession()->getPage()->findAll("css", $css_selector); 

    $counter = 0; 
    foreach($nodes as $row){ 
     if(!empty($row)) {$counter +=1;} 
    } 
    if($counter<2){ 
     throw new \Exception(sprintf("The page '%s' does not contain enough pictures for slider '%s'", $this->getSession()->getCurrentUrl(), $css_selector)); 
    } 
} 

しかし、私は、HTMLソースに見たとき、私は唯一の3試合があります。 このコードは、私に5つのマッハがあることを伝えます。 私は正しくテストしていないと思います。 誰か知っていますか?

答えて

2

手動で同じセレクタをチェックして、ページがロードされていない、別のページに移動していないなどの状況が発生した場合は、シナリオをデバッグしてください。

foreachループの代わりにcount()メソッドを使用すると、見つかった要素をカウントできます。

$counter = count($nodes); 
+0

大変申し訳ありません。私は、ソースファイル全体の中でソースコードを手直しして見ましたが、その5回も出ています。 これまで、私はこのセレクタを期待していました。 –

+0

偉大な答え。簡単で適切に動作します。 – kwoxer