Как протестировать приложение angularjs с непрямой страницей входа в транспортир - PullRequest
0 голосов
/ 29 апреля 2018

Я изо всех сил пытаюсь найти способ протестировать мое приложение angularjs, у которого есть неугловая страница входа.

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

Вот что у меня сейчас:

onPrepare: function() {
            browser.driver.get('http://localhost:9000/app);
            browser.driver.findElement(by.id('userName')).sendKeys('admin');
            browser.driver.findElement(by.id('password')).sendKeys('pass123');
            browser.driver.findElement(by.id('loginBtn')).click();

            return browser.driver.wait(function() {
                return browser.driver.getCurrentUrl().then(function(url) {
                    return /home/.test(url);
                });
            }, 10000);

Я тоже пытался с настройкой browser.ignoreSynchronization = true;, но все равно не получил.

Кто-нибудь знает, что еще я могу попробовать?

1 Ответ

0 голосов
/ 30 апреля 2018

Установите ignoreSynchronization=true до browser.get() и сбросьте до false после нажатия кнопки входа в систему.

onPrepare: function() {

  browser.ignoreSynchronization = true;

  browser.driver.get('http://localhost:9000/app);
  browser.driver.findElement(by.id('userName')).sendKeys('admin');
  browser.driver.findElement(by.id('password')).sendKeys('pass123');
  browser.driver.findElement(by.id('loginBtn')).click();

  browser.ignoreSynchronization = false;

  return browser.driver.wait(function() {
      return browser.driver.getCurrentUrl().then(function(url) {
          return /home/.test(url);
      });
  }, 10000);

Если приведенный выше код не решает вашу проблему, попробуйте переместить указанный выше код для входа в функцию и не вызывать функцию в onPrepare, вызывать функцию, как в beforeAll. У меня был некоторый неудачный опыт взаимодействия с браузером внутри onPrepare

...