【问题标题】:Selenium scroll to the bottom does not work properlySelenium 滚动到底部无法正常工作
【发布时间】:2015-09-05 07:35:28
【问题描述】:

我正在尝试滚动到网页底部,但它只滚动一次并停留在该位置,并且页面还有很大一部分。

我用这个:_inst.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

您知道问题可能出在哪里吗?

编辑:有没有办法告诉硒它必须滚动到页面的绝对底部,或者它应该滚动一定次数?比如5?

【问题讨论】:

    标签: python html selenium selenium-webdriver web-scraping


    【解决方案1】:

    要滚动到页面底部,您可以向其中一个元素发送 CTRL+END:

    from selenium.webdriver.common.keys import Keys
    element = driver.find_element_by_ ...
    element.send_keys(Keys.CONTROL , Keys.END)
    

    要查找元素,有很多可用选项(请参阅here

    更多信息请见here

    以及这些 SO 问题/答案:

    first

    second

    【讨论】:

    • 感谢您的回答,看起来不错,但我找不到在此处放置的内容:element = driver.find_element_by_... 您能给我一个提示吗?谢谢
    【解决方案2】:

    两种简单的方法:

    硬编码,所以它肯定会一路下降:

    _inst.driver.execute_script("window.scrollTo(0, 10000);")
    

    或者在页面底部找到一个元素的位置并滚动到它的位置:

    element = find_element('footer')
    position = element.location[:y]
    _inst.driver.execute_script("window.scrollTo(0, position);")
    

    【讨论】:

      【解决方案3】:

      我试过了,它对我有用。

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

      【讨论】: