Транспортир - Жасмин.Выполняйте некоторые действия только при наличии определенного элемента. - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть окно с двумя кнопками «добавить» и «закрыть».Мне нужно протестировать приведенный ниже сценарий: при нажатии на кнопку «Добавить» он выдает ошибку, и окно остается открытым.Мне нужно нажать на кнопку «Закрыть», чтобы продолжить.

Я использовал ниже код:

if(element(by.xpath("xpath_of_error_box")).isEnabled()) 
    {   
        element(by.xpath("xpath_of_close_button")).click();
    }

Но он выдает ниже ошибки:

No element found using locator: By(xpath, xpath_of_error_box)

Есть лиспособ справиться с этим?

Ответы [ 3 ]

0 голосов
/ 27 ноября 2018

Если вам нужно проверить, присутствует ли элемент, вы можете использовать следующий код:

if (element(by.xpath("yourXpath")).isPresent())

Но ваша проблема не в вашем if коде, ваша проблема в том, что xpath ищетне существует.

0 голосов
/ 28 ноября 2018
  1. isEnabled() и isPresent() возвращает обещание (не логическое) и должно быть разрешено.
  2. isEnabled() может использоваться только для <button>.
  3. Youможно использовать XPath все время, никого не слушайте.

PS.Конечно, было бы приятно увидеть ваш HTML, чтобы проверить правильность вашего XPath.

0 голосов
/ 27 ноября 2018

Судя по ошибке, ваш локатор xpath не соответствует ни одному элементу.И в соответствии с дополнительным пояснением в вопросе, которое вы можете попробовать:

element(by.xpath("xpath_of_error_box")).isDisplayed().then(isDisplayed => {
    if (isDisplayed) {
    // do what you need when it is visible
    } else {
    // if not then proceed
    }
});

Как было указано, isEnabled может быть не тем методом, который вам следует использовать в этом случае.Если кажется, что элемент, который вы пытаетесь найти, всегда присутствует в dom, вам лучше попробовать проверить его видимость, используя вместо этого isDisplay.Совет.Не рекомендуется использовать в своих тестах локаторы xpath, поскольку это связывает их со структурой HTML DOM веб-страницы, которую вы наблюдаете.Как мы знаем, пользовательский интерфейс часто меняется, что также приводит к частому торможению ваших тестов.Хотя это, конечно, личное предпочтение, оно таковым, пока вы не получите тонны проверенных тестов после одного небольшого изменения в html.

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