На сайте все сообщения об ошибках появляются в AJAX попапе и потом он исчезает.
В некоторых ситуациях сайт блокируется, но иногда тест может идти дальше потамучто ошибка не блокер, но она там есть. Сложность в том что такие ошибки могут появляться почти на любом степе любого теста.
Вопрос: как отлавливать такие ошибки в автотестах?
У меня была идея воспользоваться встроенным хуком _beforeStep и проверять перед каждым стером $I->dontSeeElement(); но почему-то _beforeStep у меня не работает, либо я незнаю как им пользоваться.
Прошу помощи с _beforeStep либо у кого-то есть более умный вариант?
написал модуль который перед каждым степом проверяет нету ли AJAX окна с ошибкой
class CheckAjaxErrors extends CodeceptionModule
{
public function _beforeStep() {
try {
$ajaxError = $this->getModule('WebDriver')->webDriver->findElement(WebDriverBy::className('bg-danger'));
} catch (\Exception $e) {
/* do nothing, ajax window is not present, assert is passed */
}
if (!empty($ajaxError)){
throw new ModuleException($this, "AJAX Error window appeared on the page");
}
}
}
и затем подключил в конфиг сьюта. Незнаю насколько правельнео и красиво получилось, но работает.