在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()
具体思想是,将浏览器页面拉到最下面再截图。