Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

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


(Olga Gnezdyonova) #1

Добрый день,

У нас в программе есть 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 окон достаточно много.


(Serhii Tanchenko) #2

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


(sidelnikovmike) #3

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

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


(Maksym Polynskyi) #4

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


(sidelnikovmike) #5

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


(Sergey Pirogov) #6

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


(Xasatx) #7

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


(Александр Таранков) #8

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


(Olga Gnezdyonova) #9

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


(Fannie Bott) #10

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


(Александр Таранков) #11

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