Во-первых, давайте отметим некоторые ключевые идеи
ключевое различие между scrollTo
& scrollBy
заключается в том, что
scrollTo
прокручивается к определенной частивеб-сайт, как вы ожидаете.
scrollBy
прокручивает до определенной части ОТ текущей позиции.
Вам нужно scrollTo
не scrollBy
, теперь давайте перейдем к концу вашего div
Второе важное замечание: заполнение считается частью элемента в отличие от поля, если вы получаете высоту элемента, заполнение находится на этой высоте
теперь получите ваш элемент как объект javascript и присвойте его переменной.
, поэтому присвойте это
driver.executeScript("const myElem = document.getElementById('ELEMENT_ID'); return myElem")
объекту WebElement, так как этот код вернет ваш элемент, если у него нет идентификатора, используйте любой другой метод JS для получения класса вашего элемента или чего-либо еще.
мы назвали его myElem, поэтому мы все еще можем связать его с JS с этим именем, выполнить это в драйвере
window.scrollTo(0, myElem.offsetTop + myElem.offsetHeight )
это прокрутит до «верхней координаты вашего элемента» + «высоты вашего элемента», котораячуть ниже.
если веб-сайт был достаточно умен, чтобы обнаружить, что эта прокрутка была роботизированной, вы можете использовать
window.scrollTo({
top: myElem.offsetTop + myElem.offsetHeight,
left: 0,
behavior: 'smooth'
});
, если поле все еще остается, получить его таким же образом, а затем добавить его к верхнему смещению.