在代码中,我想检查页面中是否存在元素,如果第一个元素存在则执行另一个测试。我可以这样做:
// $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检查,而不是将此操作打印到生成的报告中
您可以创建一个简单的帮助程序模块来检查元素是否存在。它可以使用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中阅读有关帮助者的更多信息