Сразу уточню, что пишу на Питоне(а то речь о разных языках будет). Хочу проверять видимость элементов в "окне просмотра". Из-за скролла документа элементы пропадают из поля видимости, из-за чего нет возможности нажать на них. Хотел использовать метод getBoundingClientRect в самом JS. Он возвращает координаты элемента относительно окна. Тобишь так:
# к примеру, окно поиска сайта. Это единственный элемент с классом search
coords = webdriver.execute("return document.getElementsByClassName('search')[0].getBoundingClientRect()")
Это удобно применимо к уникальным элементам, с id или небольшим кол-ом повторяющихся имен класса, но есть элементы, которые повторяются около 60 раз. К примеру, группа раскрывающихся блоков, внутри которых находятся чекбоксы. Пример:
<div class="collapse-field">
<div class="checkbox">тут внутри дочерние тэги и т.д.</div>
</div>
<div class="collapse-field">
<div class="checkbox">тут внутри дочерние тэги и т.д.</div>
<div class="checkbox">тут внутри дочерние тэги и т.д.</div>
</div>
<div class="collapse-field">
<div class="checkbox">тут внутри дочерние тэги и т.д.</div>
<div class="checkbox">тут внутри дочерние тэги и т.д.</div>
<div class="checkbox">тут внутри дочерние тэги и т.д.</div>
</div>
Чтобы находить нужный элемент среди элементов с однотипным названием классов, надо плясать с бубном, расписать логику поиска в дочерних элементах уникальных значений, по ним ориентироваться где, какой элемент и т.д. и т.п. Все это я уже делаю и нахожу с помощью Селениума(Питон), а если расписывать это под JS, то это тупо дублировать код из Питона, да и столько кода дублировать под JS, что с таким успехом можно на JS перейти. Поэтому, если WebElement - это и так JS(HTML) элемент, то может можно как-то непосредственно к нему применять вызов getBoundingClientRect()? Или может можно как-то так делать запуск JS:
# вот я нашел тот самый нужный чекбокс и хочу проверить видно ли его на экране
element = webdriver.find_element(By.CLASS_NAME, "checbox")
# что-то такого.. чтобы можно было применять именно к элементу
webdriver.execute(".getBoundingClientRect()", element)
Я не нашел в стандартной библиотеке возможности получить координаты элемента относительно скроллинга. Я использовал все, что нашел похожее на мой запрос в док-ии. И element.location использовал, и element.rect. Они не показывают координаты относительно экрана.