gpt4 book ai didi

java - driver.getScreenshotAs(OutputType.FILE) 无法将所有屏幕截图保存到目标中

转载 作者:行者123 更新时间:2023-11-30 07:47:17 25 4
gpt4 key购买 nike

我正在使用以下方法在我的项目中截取屏幕截图:-

public String getScreenShot(String imageName) {
String snapShot = null;
try {
if (imageName.equals("")) {
imageName = "blank";
}
Calendar cal = Calendar.getInstance();
Date currentTimeStamp = cal.getTime();
String timeInFormat = formater.format(currentTimeStamp);
File src = driv.getScreenshotAs(OutputType.FILE);
String screenShotLocation = System.getProperty("user.dir") + "/screenPrints/";
File des = new File(screenShotLocation + imageName + "_" + timeInFormat + ".png");
FileUtils.copyFile(src, des);
snapShot = des.toString();
i++; //i counts the no of times control coming into getScreenShot method
System.out.println(i);


} catch (Exception e) {
System.out.println("The ScreenShot could not be taken\n" + e);
e.printStackTrace();
}
return snapShot;
}

我用下面的代码行调用上面的方法:-

screen = getScreenShot("");

它进入 getScreenShot() 方法 158 次,并在控制台中显示 i 值为 158。但它能够将 134 个屏幕截图保存在目标文件夹中。如果我们在调用此方法之前包含 1 秒的间隔,它能够保存准确的 no目标文件夹中的屏幕截图。

Thread.sleep(1000);
screen = getScreenShot("");

似乎执行速度如此之快以至于它跳过了目标文件夹中的保存部分。 Thread.sleep() 大大降低了性能。有人可以为此建议更好的解决方案。提前致谢。

最佳答案

可能有几个文件同名。我认为,您的 timeInFormat 的格式最多为几秒钟,并且您在几秒钟内截取了多个屏幕截图。要解决此问题,您可以将 timeInFormat 格式化为毫秒或微秒。不过还有其他黑客攻击。换行就行了

String timeInFormat = formater.format(currentTimeStamp);

String timeInFormat = formater.format(currentTimeStamp) + String.valueOf(i);

希望对您有所帮助。

关于java - driver.getScreenshotAs(OutputType.FILE) 无法将所有屏幕截图保存到目标中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49936296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com