Python-Selenium 全页面截图

在Python Selenium操作浏览器截图时,在Chrome 和 Firefox(网上说Firefox可以截全页面,但我没有尝试成功)下,截图只能截一屏,不能做到全页面截图,使用PhamtonJS,可能由于Selenium不再支持,也出现很多出错。后来发现使用ie浏览器可以做到全页面截图。

废话少说上代码:

from selenium import webdriver
def take_screenshot(browser):
    browser.set_window_size(1200, 900)
    #以下代码是将浏览器页面拉到最下面。
    browser.execute_script("""
        (function () {
            var y = 0;
            var step = 100;
            window.scroll(0, 0);
            function f() {
                if (y < document.body.scrollHeight) {
                    y += step;
                    window.scroll(0, y);
                    setTimeout(f, 100);
                } else {
                    window.scroll(0, 0);
                    document.title += "scroll-done";
                }
            }
            setTimeout(f, 1000);
        })();
    """)
    time.sleep(1)

if __name__ == "__main__":
    driver = webdriver.Ie()
    driver.get('your url')
    take_screenshot(driver)
    driver.driver.save_screenshot('your name'+'.png')
    driver.quit()

具体思想是,将浏览器页面拉到最下面再截图。

你可能感兴趣的:(Python)