Python-selenium全ページスクリーンショット
1810 ワード
Python Seleniumでブラウザのスクリーンショットを操作する場合、ChromeとFirefox(ネット上ではFirefoxは全ページをカットできると言っていますが、私は成功しませんでした)の下で、スクリーンショットは1画面しかカットできず、全ページのスクリーンショットはできません.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()
具体的には、ブラウザのページを一番下に引いてからスクリーンショットすることを考えています.