Behat MinkExtension 遍历,计数 css-选择器

Behat MinkExtension traversing, counting css-selectors

我需要测试一下,网站上出现了多少 css-选择器。 我只得到了一个巨大的节点数组,这些节点符合我的条件。 当我计算数组中的行数时,我得到 "five",但它应该是 "three"

我的代码:

/**
 * @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-source 时,我只有三个匹配项。 这段代码告诉我,我有 5 个 machtes。 我想,我没有正确测试。 有人知道吗?

请手动检查同一个选择器并调试场景,看看是否发生了其他事情,例如页面未加载、未导航到正确的页面或发生了其他影响结果的事情。

要对找到的元素进行计数,您可以使用 count() 方法而不是 foreach 循环。

$counter = count($nodes);