我正在尝试保存使用Webdriver拍摄的屏幕截图。我使用字符串来存储Filepath。但我无法将屏幕截图保存在所需的文件夹中。相反,所需的路径将附加到我正在尝试保存的文件的名称中。
public void takeScreenshot(String obj) throws IOException{
driver= new FirefoxDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
baseUrl="http://northeastindiaholidays.com";
driver.get(baseUrl);
String Filepath="D:\\Selenium_sc";
File SrcFile=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copy(SrcFile,new File(Filepath + obj+""+ getTimeStampValue() + ".png")
}
屏幕截图已被截取,但Selenium_Sc附加在文件名中,如“Selenium_Sc..imagename”。我如何将其保存到指定的文件夹。将文件路径作为字符串存在问题吗?
重点是你错过了路径分隔符,正如@Deepak指出的那样。
我可以补充的是,我建议在操纵路径时使用java.nio.Path和java.nio.Paths。
对于加入路径(如您的情况),您可以利用Paths.get。例如。:
String screenshotsDir = "D:\\Selenium_sc";
String filename = obj+"_"+ getTimeStampValue() + ".png";
Path screenshotPath = Paths.get(screenshotsDir, filename);
File SrcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(SrcFile, screenshotPath.toFile())
注意方便方法Path#toFile(也有相反的方法:File#toPath)
PS:仅适用于JDK> = 7
我使用了以下功能&snap存储在所需的文件夹中 -
public void takeScreenshot(String obj) throws IOException{
java.util.Date date= new java.util.Date();
Timestamp t = new Timestamp(date.getTime());
String dateNow = t.toString().replace(":","_");
driver= new FirefoxDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
baseUrl="http://northeastindiaholidays.com";
driver.get(baseUrl);
File SrcFile=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(SrcFile,new File("D:\\Selenium_sc\\"+dateNow+".png"));
}
}
您可以添加要传递给最后一行中的方法的String obj参数。只需确保路径分隔符(“\”)正确。例如。 -
FileUtils.copyFile(SrcFile,new File("D:\\Selenium_sc\\"+obj+"\\"+dateNow+".png"));