如何使用python中的selenium滚动到页面的末尾

psr*_*psr 11 python selenium

我试图滚动到页面的末尾,以便我可以使所有数据可见并提取它.我试图找到它的命令,但它在java(driver.executeScript)中可用,但找不到python.现在我正在使计算机按下结束键一千次:

while i<1000:
    scroll = driver.find_element_by_tag_name('body').send_keys(Keys.END)
    i+=1
Run Code Online (Sandbox Code Playgroud)

我还尝试了driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")但它滚动到加载页面的末尾和END键相同的东西.一旦到达页面底部,下一个内容就会加载.但现在它不再滚动.

我知道会有一个非常好的选择.请帮助.

psr*_*psr 17

好吧,我终于想出了一个解决方案:

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
Run Code Online (Sandbox Code Playgroud)


小智 9

这些都不适合我,但下面的解决方案做到了:

driver.get("https://www.youtube.com/user/teachingmensfashion/videos")


def scroll_to_bottom(driver):

    old_position = 0
    new_position = None

    while new_position != old_position:
        # Get old scroll position
        old_position = driver.execute_script(
                ("return (window.pageYOffset !== undefined) ?"
                 " window.pageYOffset : (document.documentElement ||"
                 " document.body.parentNode || document.body);"))
        # Sleep and Scroll
        time.sleep(1)
        driver.execute_script((
                "var scrollingElement = (document.scrollingElement ||"
                " document.body);scrollingElement.scrollTop ="
                " scrollingElement.scrollHeight;"))
        # Get new position
        new_position = driver.execute_script(
                ("return (window.pageYOffset !== undefined) ?"
                 " window.pageYOffset : (document.documentElement ||"
                 " document.body.parentNode || document.body);"))

scroll_to_bottom(driver)
Run Code Online (Sandbox Code Playgroud)


Ale*_*exG 5

滚动到 document.body.scrollHeight

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
Run Code Online (Sandbox Code Playgroud)

  • 这不适用于 Facebook 等页面,当您到达页面底部时,它会不断更新 DOC 的高度。 (2认同)