t.me/atinfo_chat Telegram группа по автоматизации тестирования

ElementNotVisibleException - перепробовала все возможные варианты

Добрый день,

У нас в программе есть Pop-up с кнопкой Ок, которую никак не получаетася нажать и закрыть окно.
Код кнопки:

div class=“button-center”
button id=“close-success” type=“button” ng-click=“close()” class=“ng-binding”>Ok</button
/div

Что пробовала:

  1. $I->click([‘id’ => ‘close-success’]);
  2. $I->click([‘xpath’ => ‘//*[@id=“close-success”]’]);
  3. $I->click([‘class’ => ‘ng-binding’]);
  4. $I->click(’#close-success’);
  5. $I->click(‘Ok’);

Ничего не помогает - все время вылетает ElementNotVisibleException. При чем если вручную проходить то все прекрасно наживается.
Добавляла задержки, но тоже не помогает.

Буду очень признательна за совет, а то у нас таких Pop-up окон достаточно много.

а c помощью JavaScript пробовали нажимать?

А isVisible что возвращает?

Пробовали по родительскому диву кликнуть(мало ли)?

Скорее всего у Вас попап с кнопкой - iframe. В таком случае нужно сначала на него переключиться, а уже потом нажимать кнопку.

Тогда было бы NoSuchElement. Но проверить стоит))

Выходов два! Надежый - кликать джаваскриптом, 2-й попробовать ждать waitUntilElementToBeClickable, isClickable. Лично я всегда в таких моментах кликаю джаваскриптом.

Попробуйте послать клик в див оборачивающий эту кнопку либо же в элемент содержащийся в этой кнопке.
Было такое…

Еще надо посмотреть внимательно сколько элементов обнаруживается по локатору: может быть просто несколько элементов под него подходят, а видимый совсем не тот, что находится первым

Подскажите пожалуйста, а как это можно проверить?

Например, фаербаг по xpath покажет все элементы отвечающие введенному значению.

Можно статически с помощью FireBug, FirePath (плагины под FF), либо $x(’’) - в Chrome. Можно прямо в коде тестов добавить дебаг-код, который выведет количество или список найденных элементов