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);
我需要测试一下,网站上出现了多少 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);