foreach - 对于每个带有 behat 或 codeception 的元素

标签 foreach automated-tests behat codeception

我想测试一个具有动态菜单结构的网站。我想遍历所有菜单项并在每个页面上运行相同系列的测试。我们正在谈论 100 多个定期更改的页面。

我想用 behat 或 codeception 来做到这一点。

有没有人知道如何做到这一点?

最佳答案

将 Behat 与 Mink 一起使用时,您可以使用 findAll() 获取菜单项,然后对其进行迭代:

/**
 * @When /^I run my test series for all menu items$/
 */
public function iRunMyTestSeriesForAllMenuItems() {

    $result = TRUE;
    $this->getSession()->visit('http://www.example.com/');
    $links = $this->getSession()->getPage()->findAll('css', '#menu ul li a');
    foreach ($links as $link) {
        $url = $link->getAttribute('href');
        if (FALSE === $this->yourTestHere($url)) {
            $result = FALSE;
        }
    }

    return $result;
}

关于foreach - 对于每个带有 behat 或 codeception 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16500433/

相关文章:

automated-tests - Cypress 报告元素尺寸错误

report - 如何使用 ChromeDriver 在我的 Restful 报告中包含整页的屏幕截图(而不仅仅是视口(viewport))?

selenium - Behat + selenium 2 等待页面加载

iframe - 如何使用 Behat/Mink 切换到动态命名的 iframe

shell - 我可以在没有 for 的情况下为 zsh 中文件通配的每个结果执行命令吗?

java - for each 循环中 if 语句的返回值

php - PDO - 对多个 foreach 循环使用相同的查询

java - 我可以检查迭代变量来了解 foreach 循环是否运行到 Java 结束吗?

python - RobotFramework:为什么要用关键字/机器人框架语法编写测试?

php - Zend Framework 与 Behat BDD 集成