Size: a a a

QA — Автоматизация

2021 May 10

BO

Boris Osipov in QA — Автоматизация
нет. вакансии туда https://t.me/qa_jobs
источник

YK

Yasha Kramarenko in QA — Автоматизация
Ребят, кто знает, какое официальное объяснение того, что в селениум вебдрайвере клик не проходит по элементу который перекрыт другим (ElementClickInterceptedException : element click intercepted: Element ... is not clickable at point (...). Other element would receive the click: ...)

а clear, sendKeys проходят... Какая в этом задумка?

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

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

@barancev, может ты быстрее всего по этому вопросу поможешь...
источник

Д

Дмитрий in QA — Автоматизация
До инпута можно табом добраться и ввести текст например
источник

YK

Yasha Kramarenko in QA — Автоматизация
ну да... я тоже об этом думал...  как об одной из причин...

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

SR

Sergey Raspopov in QA — Автоматизация
Селениум не умеет вводить текст под оверлей, кликать по перекрытым элементам и прочее, что могут делать некоторые другие инструменты. Потому что эмуляция действий пользователя. В случае селениум, можно с помощью JavaScript  назначить display: none и открыть интересующий элемент
источник

BO

Boris Osipov in QA — Автоматизация
в спеке вообще написано. https://www.w3.org/TR/webdriver/#interactability
источник

YK

Yasha Kramarenko in QA — Автоматизация
умеет, у меня тест проходит в котором сенд кийс шлет ключи в поле под оверлеем
источник

SR

Sergey Raspopov in QA — Автоматизация
Хм... значит клик не работает.
источник

SR

Sergey Raspopov in QA — Автоматизация
Или все работает, а я чет читаю через жопу???
источник

YK

Yasha Kramarenko in QA — Автоматизация
клик не проходит под оверлеем, да
но проходит sendKeys и clear
источник

YK

Yasha Kramarenko in QA — Автоматизация
круть, разбираюсь!
источник

SR

Sergey Raspopov in QA — Автоматизация
Не ). Все правильно. Клик идет по координата если я правильно помню. Т.е. по верхнему слою ДОМ
источник

YK

Yasha Kramarenko in QA — Автоматизация
как пишет дока скинутая Борисом - клик идет по центру, да
и если там другой элемент - то будет эксекпшен
источник

MD

Max Doe in QA — Автоматизация
Подробнее можно?
источник

BO

Boris Osipov in QA — Автоматизация
tldr; все что focusable в то можно вводить\стирать текст.
источник

SR

Sergey Raspopov in QA — Автоматизация
Selenium вычисляет местоположение элемента и кликает в цент его координат. Если элемент перекрыт, то клик проходит по самому верхнему слою. По этому иногда надо pre-script писать, чтоб подготовить страницу.
источник

MD

Max Doe in QA — Автоматизация
Спасибо, скрипт убирает перекрывающий элемент?
источник

YK

Yasha Kramarenko in QA — Автоматизация
ага, получается как раз, что если можно табом либо другим способом дофокусироваться - значит можно и текст вводить...
источник

SR

Sergey Raspopov in QA — Автоматизация
Ну да. Вот такая штука driver.execute_script("""document.getElementById("...").style.display = "none";""") в случае реализации на питоне.
источник

YK

Yasha Kramarenko in QA — Автоматизация
в общем, как будто все понятно, как пишет дока, если элемент фокусабл - значит можно вводить текст
вопрос, можно ли на фронтенде для юз кейсов когда юай надо зафризить и повесить какой то лоадинг-оверлей – простым способом снять в дополнение и фокусабл со всех элементов под оверлеем?

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

а если нет, тогда надо на уровне враперов типа селенайда - самостоятельно запариваться ожиданием "до неперекрытия" при вводе текста...
источник