Как кликнуть через оверлей по селектору?

Теги: #<Tag:0x00007f78e9746e90> #<Tag:0x00007f78e9746dc8> #<Tag:0x00007f78e9746d00> #<Tag:0x00007f78e9746c10>

Всем привет, есть проблема, селениум не видит элементов так как над ними есть оверлей как кликнуть через оверлей? Оверлей статический, вейтеры не катят.

Технологии: java 8, serenity

Пробовал Actions, не помогло, ломается на action.perform();

верстка:

Ну, вроде логично. У вас же что-то типа модального окна открыто, нет?

да, открыто модальное окно

Закройте окно)

))) Мне в нем как бы надо кликать и сендкейсы делать

Так если оверлей перекрывает то на что нужно нажать это же баг

1 симпатия

через оверлей на скрине клики мышкой работают, тоесть проблема исключительно с вебдрайвером

Попробуйте сначала нажать на оверлей а потом на поле
Или вообще удалите оверлей js-om: document.querySelector(‘xxxxx’).remove()

Overlay это типа Popup’a, потому если его удалить, то скорее всего пропадет элемент, по которому надо кликнуть. А этот элемент скорее всего дочерний по отношению к Overlay’u. У меня в проекте был похожий, пришлось писать длинный селектор, который вначале находил сам Overlay, потом уже конкретно в нем находил элемент. Это сработало в моем случае. Только вначале надо открыть его. Чтобы искомый элемент был виден.

1 симпатия

@Valentin_G @Andriy_Sinchuk вау можете сценарий подробно описать ?
я так думаю linkedin один на всех хочу попробовать автоматизировать это если выйдет естественно поделюсь
:smile::v::star:

chained FindElement это самая ягодка! по моему

Можно кликнуть принудительно с помощью javaScriptExecutor.

executor.executeScript(“arguments[0].click();”, element);

У меня был следующий сценарий:

  1. Открыть попуп.
  2. Дальше ждать пока кнопка видима.
  3. Кликнуть по ней.

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

селениум это ж не Рон Джереми когда селектор вырастает длинный это совсем не радует - вы можете искать кноп внутри уже найденого popup так как они оба

extend
SearchContext,

оба
https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html

и

https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/remote/RemoteWebDriver.html

Если вы сможете найти короткий для вашего элемента, то поздравлю вас :slight_smile:
Мне увы не удалось.

в каждом случае по своему например часто помогает после того как tricky to grab элемент найден посмотреть его getAttrbute("innerHTML" ) (если не в browser console то хотя бы как текст в System.out -

Ого, сколько ответов))) Я и не думал что в новогодние праздникиих будет столько))) Спасибо всем, буду пробовать)