Подтвердить что ты не робот

Может ли транспортир работать медленно?

Есть ли способ запустить тест Angular E2E, написанный медленно с помощью транспортира, чтобы я мог смотреть, что происходит?

4b9b3361

Ответ 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 секунду, и подсветится голубым цветом.