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

Помогите понять как баннер "смещает" элементы?


(Назар) #1

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


(Дмитрий Мирошник) #2

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


(Назар) #3

Показать не могу,так как баннер истёк в субботу ночью.
Баннер не заслонял элемент,это слишком очевидно )
На странице,я,в категориях фильтров кликаю на определленные…и при появлении баннера драйвер не может кликнуть.
И визуально баннер,когда “вылазит”,как бы сдвигает страницу вниз,а не “заслоняет” хедер


(Сергей Блохин) #4

Баннер вполне очевидно может и меняет структуру DOM.
Прежде, чем взаимодействовать с нужным вам элементом, убедитесь, что баннер не появился.
Сначала сделайте проверку на наличие баннера, закройте его, если он есть, а потом кликайте на нужный вам элемент.


(Назар) #5

Да я так и делаю,просто для собственного развития хотелось понять на “техническом” уровне почему так происходит,ведь есть баннеры,при наличии которых на странице,такого не происходит


(Сергей Блохин) #6

Вариантов может быть много.
Нужно посмотреть конкретный пример.
Ещё скажите, как именно вы находите искомый элемент? XPath/CSS/ID?
И какую именно ошибку выдаёт WebDriver при попытке взаимодействия с этим элементов (когда баннер присутствует).


(Назар) #7

Пример не могу привести,так как баннер уже не активный.
Использую всегда хратн.
Дословно не процитирую,но Element is not clickable
И кстати,при попытке проскролить к элементу (видимость внизу окна,в смысле не под баннер его скролил) джаваскриптом и кликнуть(методом селениума),эфект тот же.
Скролил только для эксперемента (думал может скролинг как то вернёт “расположение” элементов на прежнее место)


(Bolatbek) #8
  1. Нужен код странички с баннером и без.
  2. Желательно - давать весь трейс ошибок, выдаваемых вебдрайвером.

Очевидно, что баннер заслоняет собой нужный вам элемент.


(Назар) #9

Вы читаете мои сообщения…или только последнее?


(Дмитрий Мирошник) #10

Посмотрите вот тут:


Проблема очень похожа на Вашу. По крайней мере, из описания.


(Bolatbek) #11

Я внимательно читаю все сообщения на этом форуме.
А вам на будущее - сохраняйте скриншоты, логи, на этом форуме не телепаты сидят.
И раз вам второй человек говорит: “Нужно посмотреть конкретный пример.”, то наверное не надо огрызаться на желание помочь.


(Назар) #12

Я тоже думаю,что похоже…наверное баннер похожим образом “влияет” на элементы как и изменение разрешения.
Да и проблемы нет,так как всё решается закрытием баннера перед кликом,была интересна сама причина такого поведения


(sidelnikovmike) #13

Конечно без кода и стектрейса сложно разобраться, но раз их нет.
Вероятнее всего ваш банер перекрывает остальные элементы. Это достаточно часто так делантся. То есть у него прозрачная подложка в размер страницы. Тогда ваши элементы не будут видимы и не кликабельны, хотя глазами вы видите элементы под банером.

Думается что больше вам ничем особо не помогут, если нет информации. Если это на работе у вас - попросите на время для тестов вернуть банер и разберитесь.