2014-06-06 4 views
-2

Webdriver를 사용하여 촬영 한 스크린 샷을 저장하려고합니다. 파일 경로를 저장하기 위해 문자열을 사용하고 있습니다. 하지만 원하는 폴더에 스크린 샷을 저장할 수 없습니다. 대신 원하는 경로가 저장하려고하는 파일의 이름에 추가됩니다.Webdriver를 사용하여 스크린 샷을 찍은 후 원하는 폴더에 이미지가 저장되지 않았습니다.

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"와 같은 파일 이름에 추가됩니다. 어떻게 이것을 지정한 폴더에 저장할 수 있습니까? 파일 경로를 문자열로 가져 오는 데 문제가 있습니까?

답변

1

요점은 @Deepak이 지적했듯이 경로 구분 기호가 누락되었다는 것입니다.

경로를 조작 할 때 java.nio.Pathjava.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()) 

공지 사항 TOFILE 편리한 방법 경로 # (반대도있다 : 파일 번호의 toPath가)

PS : 단지에 대한 JDK> = 7

0

내가 & 스냅이 원하는 폴더에 저장되어있는 기능은 다음 중고 -

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")); 
} 

}

당신은 마지막 줄에 방법에 전달하는 문자열 OBJ 매개 변수를 추가 할 수 있습니다. 경로 구분 기호 ("\")가 올바른지 확인하십시오. E.G. -

FileUtils.copyFile(SrcFile,new File("D:\\Selenium_sc\\"+obj+"\\"+dateNow+".png")); 
관련 문제