使用Selenium滚动页面的有效方法

Cod*_*uru 4 python firefox selenium scroll

我目前正在使用Selenium进行硬编码,使用Python中的Firefox驱动程序,无论如何它是否可以在页面上下滚动?当页面中的图像加载时,页面可能会比正常情况大20倍.

我需要多次向上和向下滚动,不要错过页面的任何部分.

当前的方法效率不高,有时不会滚动到页面的某些部分.以下是我目前的代码

 browser = webdriver.Firefox()
browser.get(link)

browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.4);")
        time.sleep(0.2)
        browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.5);")
        time.sleep(0.2)
        browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.7);")
        time.sleep(0.2)
        browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.8);")
        time.sleep(0.2)
        browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4);")
        time.sleep(0.2)
        browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.2);")
        time.sleep(0.2)
        browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.3);")
        time.sleep(0.2)
        browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.5);")
        time.sleep(0.2)
        browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.7);")
        time.sleep(0.2)
        browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.9);")
        time.sleep(0.2)
        browser.execute_script("window.scrollTo(0, document.body.scrollHeight/5.2);")
        time.sleep(0.2)
        browser.execute_script("window.scrollTo(0, document.body.scrollHeight/5.1);")
        time.sleep(0.2)
        browser.execute_script("window.scrollTo(0, document.body.scrollHeight/5.8);")
        time.sleep(0.2)
        browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.7);")
        time.sleep(0.2)
        browser.execute_script("window.scrollTo(0, document.body.scrollHeight/50);")
        time.sleep(0.2)
Run Code Online (Sandbox Code Playgroud)

Sha*_*ane 8

如果在Python中使用Selenium,你可以使用它...

scheight = .1
while scheight < 9.9:
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight/%s);" % scheight)
    scheight += .01
Run Code Online (Sandbox Code Playgroud)

或类似的规定.您可以添加if制动器以捕获数据中的特定scheight位置的数据while.只需按照+=自己喜欢的方式进行迭代即可.我使用.01所以我可以在视觉上看到它滚动,否则你需要超时,它会显得不稳定.取决于你需要什么.