我想滚动网站中的特定 div 元素,直到它到达底部。
假设我有这个 html:
<div>
<ul>
<li>list1</li>
<li>list2</li>
<li>list3</li>
</ul>
<ol>
<li>previous</li>
<li>current</li>
<li>next</li>
</div>
现在
<ol>
元素位于页面底部的我的视口之外,并且在整个页面中,上面列出的 div 是唯一可滚动的元素。我如何滚动到底部,这样我就可以在我的视口中看到 <ol>
并且我可以使用 selenium 与其进行交互?就像使用 .click()
一样。我无法直接滚动到页面底部,因为只有 div 是可滚动的,并且尝试滚动到其他任何位置都不会执行任何操作。
查看之前的 StackOverflow 线程,我尝试找到 div,然后使用 javascript 滚动它,如下所示:
div = self.driver.find_element(By.XPATH, "/html/body/main/section/section/div[2]/div")
self.driver.execute_script('arguments[0].scrollTop = arguments[0].scrollHeight', div)
我希望这会将 div 滚动到
<ol>
列表,并且我可以与其交互。不幸的是,这没有做任何事情,我仍然得到一个NoSuchElementException
错误。
如果您想滚动到页面底部,可以使用浏览器 Web API 的 scrollTo 方法。
JavaScript 片段:
window.scrollTo({'top': document.body.scrollHeight, 'behavior': 'instant'});
Python代码:
js_scroll_bottom = "window.scrollTo({'top': document.body.scrollHeight, 'behavior': 'instant'});"
self.driver.execute_script(js_scroll_bottom)