2016-08-02 80 views
0

我需要測試,有多少個CSS選擇器出現在webseite上。 我只有巨大的陣列與節點,這與我的條件匹配。 當我數陣列中的行,我得到「十二五」,但它schould是「三化」Behat MinkExtension遍歷,計數CSS選擇器

我的代碼:

/** 
* @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源,我只有三場比賽。這段代碼告訴我,我有5臺機器。 我想,我沒有正確測試。 有沒有人想法?

回答

2

請手動檢查相同的選擇器並調試場景以查看是否發生其他事情,例如未加載頁面,不會導航到正確的頁面或者會影響結果的其他事情發生。

爲了計算找到的元素,可以使用count()方法而不是foreach循環。

$counter = count($nodes); 
+0

哦,非常抱歉。我在整個源代碼文件中查看了源代碼,並且它也出現了五次。 以前我只看過那裏,我預計這個選擇器。 –

+0

很好的答案。簡單和正常工作。 – kwoxer