Python中的Selenium webdriver屏幕截图有错误的解决方案

时间:2016-11-16 12:27:50

标签: python selenium

我在Windows 10上使用selenium和Firefox geckodriver进行截屏

delay = 5
browser = webdriver.Firefox(executable_path="C:\\Users\\A0048436\\Downloads\\geckodriver.exe")
browser.set_window_size(1920, 1080)
browser.get('file://' + html_file)
time.sleep(delay)
browser.save_screenshot(html_file + '.png')
browser.quit()

因此我预计图像分辨率将是窗口大小,但不是 - 它更低。如何设置屏幕截图分辨率?

1 个答案:

答案 0 :(得分:3)

方法set_window_size设置窗口的大小,包括边框,菜单栏和标签。

要设置视口的大小,首先需要计算外窗口和内窗口之间的差异。然后将此差异添加到所需的分辨率:

dx, dy = browser.execute_script("var w=window; return [w.outerWidth - w.innerWidth, w.outerHeight - w.innerHeight];")
browser.set_window_size(1920 + dx, 1080 + dy)