проверить, присутствует ли элемент в транспортире - PullRequest
0 голосов
/ 12 июня 2018

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

if(this element is present)
{
click it
}
else check if this element is pressent
{
click it
}

Это то, что я пробовал.

  browser.driver.findElements(by.id('element1')).then(function(result) {
      if (result) {
        browser.driver.findElement(by.id('element1')).click();
      }
      else {
        browser.driver.findElement(by.id('element2')).sendKeys("username");
      }
    }
  );

Моя проблема в том, что еслиэлемент в условии if отсутствует, тогда я получаю ошибку 'Failed: no such element: Unable to locate element:'.Я не хочу, чтобы мои тесты были неудачными, потому что возможно, что элемент отсутствует, и тогда он должен перейти в блок else.Я видел так много вопросов о stackoverflow, но ничто не помогло мне.Я был бы очень признателен за любую помощь.

Обновление: обратите внимание, что это не угловой экран, и я могу использовать только browser.driver .______ apis.

1 Ответ

0 голосов
/ 13 июня 2018

Вы были очень на правильном пути.Поскольку findElements возвращает массив, вам просто нужно изменить то, что у вас было if (result) на if (result.length>0).С FindElements поиск ничего не является ошибкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...