如何在Python中使用selenium滚动到页面的末尾?

2024-06-12 01:11:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图滚动到页面的末尾,这样我就可以使所有数据都可见并提取出来。我试图为它找到一个命令,但它在java中可用(driver.executeScript),但在python中找不到。现在我正在让电脑按结束键一千次:

while i<1000:
    scroll = driver.find_element_by_tag_name('body').send_keys(Keys.END)
    i+=1

我也试过driver.execute_script("window.scrollTo(0, document.body.scrollHeight);"),但是它滚动到加载页面的末尾,而end key也做了同样的事情。在页面底部加载下一个内容。但现在它不再滚动了。

我知道会有一个很好的选择。

如何在Python中使用selenium滚动到页面的末尾?


Tags: 数据命令bytagdriverbody页面element
3条回答

我终于想出了一个解决办法:

lenOfPage = driver.execute_script("window.scrollTo(0, document.body.scrollHeight);var lenOfPage=document.body.scrollHeight;return lenOfPage;")
    match=False
        while(match==False):
                lastCount = lenOfPage
                time.sleep(3)
                lenOfPage = driver.execute_script("window.scrollTo(0, document.body.scrollHeight);var lenOfPage=document.body.scrollHeight;return lenOfPage;")
                if lastCount==lenOfPage:
                    match=True

这可以通过滚动到document.body.scrollHeight一行完成

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

您可以利用scrollingElementscrollTopscrollHeight一起滚动到页面的末尾。

driver.execute_script("var scrollingElement = (document.scrollingElement || document.body);scrollingElement.scrollTop = scrollingElement.scrollHeight;")

参考资料:

  1. Scroll Automatically to the Bottom of the Page
  2. Document.scrollingElement - Web APIs | MDN
  3. Element.scrollHeight - Web APIs | MDN
  4. Element.scrollTop - Web APIs | MDN

相关问题 更多 >