Selenium:无法使用 aShot 库获取完整的页面截图

我正在尝试使用 Firefox gecko 驱动程序和

driver.get("https://google.com");截图 fpScreenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(1000)).takeScreenshot(driver);ImageIO.write(fpScreenshot.getImage(),"JPEG",new File("FullPageScreenshot.jpg"));

查看了很多变体,但没有任何效果.有趣的是,当我尝试使用旧的 Firefox 版本(46)时,我可以在没有任何第三方库的情况下截取完整的屏幕截图.我正在尝试使用最新的 firefox 并拥有完整的屏幕截图功能.

有什么帮助吗?

解决方案

试试:

Screenshot screenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(ShootingStrategies.scaling(1.75f), 1000)).takeScreenshot(driver);

其中 1.75f 是设备像素比(您可以在浏览器控制台中运行 window.devicePixelRatio; 来找到它).如果仍然没有捕获全屏,请将其更改为 2f

Am trying to take the complete page screenshot both horizontally and vertically using Firefox gecko driver and aShot Library.

However, the results are not as expected. Take a look:

driver.get("https://google.com");

Screenshot fpScreenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(1000)).takeScreenshot(driver);
ImageIO.write(fpScreenshot.getImage(),"JPEG",new File("FullPageScreenshot.jpg"));

Looked into a lot of variants but nothing is working. Interestingly, when I try using old firefox version (46), I am able to take full screenshot without any third party library. Am trying to use latest firefox and have full screenshot functionality.

Any help?

解决方案

Try:

Screenshot screenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(ShootingStrategies.scaling(1.75f), 1000)).takeScreenshot(driver);

where 1.75f is device pixel ratio (you can run window.devicePixelRatio; in browser console to find it). If it's still not capturing full screen, change it to 2f

相关文章