2016-08-02 81 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