Тестовый обработчик кликов на теге привязки

0

У меня есть регулярный (не JS) якорный тег, который ссылается на внешний сайт, но с дополнительным поведением для кликов, который меняет DOM

<body ng-controller="MyController">
  <a href="https://www.google.co.uk/" ng-click="inProgress = true">
    {{ inProgress ? "Going to Google" : "Go to Google" }}
  </a>
</body>

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

browser.element(by.css('a')).click();
expect(browser.getCurrentUrl()).toBe('https://www.google.co.uk/');

но следующий тест не выполняется

browser.element(by.css('a')).click();
expect(browser.element(by.css('body')).getText()).toBe('Going to Google');

с ошибкой отображается содержимое главной страницы Google как текст body.

Как я могу проверить, что происходит после щелчка на теге, отличном a Javascript?

  • 3
    Добавьте цель _blank, если вы хотите, чтобы ваша ссылка открывалась в другом окне, в противном случае проверка верна и не пройдена, html исчезнет при нажатии на ссылку
  • 0
    @floribon В настоящее время я не хочу, чтобы ссылка открывалась в новом окне, но я хочу проверить, видит ли пользователь изменение текста в ссылке после того, как щелкнет по ней.
Показать ещё 2 комментария
Теги:
protractor

1 ответ

1

Полагаю, вам нужно дождаться изменения текста после нажатия. Из вашего кода вы ищете текст сразу после нажатия? Вы пробовали ожидаемые условия

var EC = protractor.ExpectedConditions;
browser.wait(EC.textToBePresentInElement($('body'), 'Going to Google'), 5000);
  • 0
    Ожидаемые условия не помогают. Тестирование сразу после щелчка показывает, что внешняя страница загружена, поэтому более длительное ожидание не вернет часы назад и не предоставит транспортиру доступ к тому, что находится в тот момент на предыдущей странице.
  • 0
    Ой, извини, я неправильно понял. Я думал, что вы тестируете содержание тела следующей страницы
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню