用硒向下滚动

scroll down with selenium

我正在使用 python selenium 包,我正在尝试将页面滚动到底部。但是,我应用 selenium 的网站是动态的(动态加载),这意味着它不会'真的没有滚动到页面底部。

阅读后,我在 selenium 文档中找到了解决方案:

for i in range(25):
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")
    time.sleep(0.5)

这对我来说还不够好,因为有时页面需要更多的迭代,而有时需要更少的迭代才能到达页面底部。

是否有 get 函数以便我可以使用 if 语句,例如:

for i in range(25):
    if driver.current_position == driver.document_height:
        break
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")
    time.sleep(0.5)

所以,当我到达文档的末尾时,我不会等待并打破循环。

或者如果我可以检查我跳跃了多少像素,如果它是零我将打破循环

最好使用 while 循环,一旦到达页面底部就跳出循环,而不是在 for 中设置一定的迭代次数关于一种方法的很好的讨论,在这里:Scrolling down a page with Selenium Webdriver