如何使用硒在小视口上拍摄高分辨率屏幕截图?

时间:2019-12-23 15:11:44

标签: python selenium selenium-webdriver selenium-chromedriver python-3.7

我正在以某些特定视口(即640x580)的屏幕快照网站,但是我希望图像具有更高的分辨率,例如该尺寸的3倍。我不能只是set_window_size(1920,1080)这样的网站看起来不一样。

我尝试了像这样的移动仿真,效果很好。这样,我得到的图像尺寸是视口的3倍,而不会损失质量。

mobile_emulation = {
    "deviceMetrics": {"width": 640, "height": 580, "pixelRatio": 3},
    "userAgent": "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19",
}

chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_experimental_option("mobileEmulation", mobile_emulation)


driver = webdriver.Chrome(options=chrome_options)

但是有时我可能需要使用800x580或1000x580或相同的640x580的网站外观,在这种情况下,我需要使用新选项重新启动/启动chrome吗? (或者也许有一种方法可以在移动仿真中切换/设置视口大小?不重启),这非常耗时,并且我需要更高的吞吐量,我需要更快的图像。

我尝试了PIL调整图像的大小,但是拉伸后的质量不好,根本没有帮助。如果有人可以帮忙,现在困扰我好几天了,真是太好了。

1 个答案:

答案 0 :(得分:0)

尝试调整浏览器虚拟窗口的大小:

driver.set_window_size(width, height)