2014-01-13 50 views
0

在Excel中多行存在,具有不同的數據集,我想採取截圖的每一個像這樣使用POI從.xlsx文件讀取數據時,可以如何使用Selenium webdriver屏幕截圖捕獲方法?

driver.get("http://www.google.com/"); 
    File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); 
    // Now you can do whatever you need to do with it, for example copy somewhere 
    FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot1.png")); 
    driver.get("http://www.yahoo.com/"); 
    File scrFile1 = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); 
    // Now you can do whatever you need to do with it, for example copy somewhere 
    FileUtils.copyFile(scrFile1, new File("c:\\tmp\\screenshot2.png")); 

如何同樣會重複每一個Excel的行的每一步。

就像我硬編碼「Screenshot1,... 2等」的值一樣。最後,我只會得到2個截圖,而不是每個行記錄的2個截圖。

+0

你想在每次活動或只是當你打電話Driver.get(url)時截圖? – Anuragh27crony

+0

您可以創建一個截屏並保存文件的方法。在導航到網站之前調用此方法。這將確保捕獲並保存每一行excel的屏幕截圖。另外爲了節省,你可以使用時間戳,這將確保每次創建一個新文件並且不會拋出文件存在錯誤。 – Vinay

回答

0

創建FileName字符串而不是硬編碼文件路徑,您可以在屏幕截圖文件名中傳遞行號以更好地標識屏幕截圖文件。

File ScreenShot = ((TakesScreenshot) driver) 
       .getScreenshotAs(OutputType.FILE); 
StringBuilder FileName = new StringBuilder("C:\\tmp"); 
FileName.append(ScreenshotName); 
FileName.append("_"); 
FileName.append(rownumber); 
FileName.append(".jpeg"); 
FileUtils.copyFile(ScreenShot, new File(FileName.toString())); 
相關問題