Создать скриншот после неудачной команды селен - PullRequest
3 голосов
/ 24 октября 2011

Базовый класс PHPUnit Selenium имеет возможность сделать снимок экрана при сбое, что очень помогает выяснить, почему тест не удался. Однако сервер selenium возвращает ошибку вместо сбоя при любом условии ошибки, кроме явных вызовов assert* (таких, которые мы пытаемся сделать с несуществующим элементом). Если я пытаюсь сделать снимок экрана после того, как сервер сообщит об ошибке, я получу еще одну ошибку, сообщающую, что сервер уже отклонил сеанс. Есть ли способ изменить это поведение?

Обновление: это потому, что PHPUnit разрывает соединение при получении ошибки. Я смог изменить его с помощью некоторых (довольно уродливых) манипуляций с кодом PHPUnit.

Ответы [ 3 ]

1 голос
/ 28 октября 2011

Это не сервер Selenium, а класс SeleniumTestCase для PHPUnit 3.4, который автоматически отправляет команду останова при обнаружении ошибки (строка Driver.php 921). PHPUnit 3.6, кажется, лучше обрабатывает ошибки.

1 голос
/ 26 октября 2011

Сделайте эти взаимодействия тестовыми примерами.

Например, в Perl, Если написано, как показано ниже, и происходит сбой из-за несуществующего элемента. скрипт будет ошибка out

$sel->type("email-id","trial\@trial.com");

Хотя, если вышеуказанный шаг выполнен в качестве контрольного примера, запишите его следующим образом

$sel->type_ok("email-id","trial\@trial.com");

Если существует несуществующий элемент, тестовый случай будет только fail , и сценарий будет продолжен.

Таким образом, используя TAP (протестируйте любой протокол) с помощью модуля use Test::More;, если после функции добавляется _ok, функция return будет использоваться для определения судьбы тестового примера.

т. - Возвращение 'O' означает тест Неудачный

и возврат '1' означает тест Пройдено

0 голосов
/ 06 июля 2014

Я думаю, что вы можете переписать метод 'travelbox' и сделать что-то вроде этого:

public function onNotSuccessfulTest(Exception $e){
       file_put_content('/xxx/xxx.jpg', $this->currentScreenshot());
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...