Есть ли способ запустить тест Angular E2E, написанный медленно с помощью транспортира, чтобы я мог смотреть, что происходит?
Может ли транспортир работать медленно?
Ответ 1
Ниже мое решение сделать это. Таким образом, в основном я создал декоратор для текущей функции потока управления execute
, которая теперь добавляет дополнительные очереди в 100 мс перед каждым действием в очереди.
Это нужно запустить до запуска любых тестов (вне describe
block)
var origFn = browser.driver.controlFlow().execute;
browser.driver.controlFlow().execute = function() {
var args = arguments;
// queue 100ms wait
origFn.call(browser.driver.controlFlow(), function() {
return protractor.promise.delayed(100);
});
return origFn.apply(browser.driver.controlFlow(), args);
};
Ответ 2
Как сказал Джордж Штокер в комментарии, я не знаю, почему вы хотели бы это сделать... но вы всегда можете добавить сон, где бы вы ни захотели в своем тесте.
browser.sleep(6000);
Ответ 3
Вы можете войти в "режим отладки", поместив в свой код команду:
browser.pause();
В режиме отладки в вашем терминале вы увидите следующий вывод:
------- WebDriver Debugger -------
ready
press c to continue to the next webdriver command
press d to continue to the next debugger statement
type "repl" to enter interactive mode
type "exit" to break out of interactive mode
press ^C to exit
Вы могли бы:
- Запустите команду командой, введя
c
- Перейдите к следующему оператору отладчика (следующий
browser.pause()
), введяd
- Войдите в интерактивный режим, где вы можете взаимодействовать со всеми элементами, введя
repl
Ответ 4
Предыдущие ответы больше похожи на обходной путь. Другой способ - добавить параметр в конфигурацию Protractor:
highlightDelay: 1000
И изменить на:
directConnect: false
Это задержит действия транспортира, такие как нажатие или ввод текста на 1 секунду, и подсветится голубым цветом.