Codeception, не печатать конкретное действие, чтобы сообщить - PullRequest
5 голосов
/ 12 марта 2019

В коде я хочу проверить, существует ли элемент на странице, и выполнить другой тест, если существует первый элемент. Я могу сделать это просто:

// $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 и не печатать это действие в сгенерированном отчете

1 Ответ

1 голос
/ 27 марта 2019

Вы можете создать простой вспомогательный модуль для проверки существования элементов.Для поиска элементов можно использовать модуль 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
}

Также вы можете узнать больше о помощниках в официальной документации

...