Codeception,不打印特定的报告操作

问题描述 投票:5回答:1

在代码中,我想检查页面中是否存在元素,如果第一个元素存在则执行另一个测试。我可以这样做:

// $I is a AcceptanceTester Object and extends \Codeception\Actor class
try{
    $I->see('.firstElement');
}catch(ElementNotFound $e){
    // do some actions
}
    // do some anothers actions

但如果我这样做,在报告文件中我可以看到行"I see '.firstElement'"。我不希望在本报告中看到这个测试。

我的问题:如何静静地调用\ Codeception \ Actor方法?我只想做一个简单的DOM元素html检查,而不是将此操作打印到生成的报告中

php codeception
1个回答
1
投票

您可以创建一个简单的帮助程序模块来检查元素是否存在。它可以使用WebDriver模块或PhpBrowser模块来查找元素。例如:

class ElementChecker extends \Codeception\Module
{
    public function checkExistence($locator)
    {
        $elements = $this->getModule('WebDriver')->_findElements($locator);
        return !empty($elements);
    }
},

之后,您应该将此帮助程序添加到您的代码配置中。例如:

actor: SomeTester
modules:
    enabled:
        # some modules
        - ElementChecker

并且新方法将包含在测试器类中。你可以使用它们:

if ($I->checkExistence('.firstElement')) {
    // some code
}

此外,您可以在the official documentation中阅读有关帮助者的更多信息

© www.soinside.com 2019 - 2024. All rights reserved.