В коде я хочу проверить, существует ли элемент на странице, и выполнить еще один тест, если существует первый элемент. Я могу сделать это просто:
// $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? Я просто хочу выполнить простую проверку HTML-элемента DOM и не печатать это действие в сгенерированном отчете.
Да =) Я использую Webdriver с браузером Chrome (безголовым или нет)






Вы можете создать простой вспомогательный модуль для проверки существования элементов. Он может использовать модуль Вебдрайвер или модуль PhpБраузер для поиска элементов. Например:
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
}
Кроме того, вы можете узнать больше о хелперах в официальная документация.
вы используете WebDriver?