2012-10-19 56 views

回答

5

有兩個問題在這裏解決。首先,我們需要一些代碼來截取屏幕截圖,其次,我們需要讓代碼在測試失敗時運行。

使用the TakesScreenshot interface在Selenium中截取屏幕截圖非常簡單。所以,你需要這樣的東西:

TakesScreenshot ts = (TakesScreenshot)driver; 
byte[] image = ts.getScreenshotAs(OutputType.BYTES); 

try { 
    File screenshot = new File("/some/path/myscreenshot.png"); 
    FileOutputStream fos = new FileOutputStream(screenshot); 
    fos.write(image); 
    fos.close(); 
} catch (IOException ex) { 
    fail("Failed to write screenshot"); 
} 

根據驅動程序你使用,你可能需要使用the Augmenter class了。

測試失敗時運行代碼將取決於您使用的測試框架,而不是Selenium。例如,如果您使用的是TestNG,則可以編寫一個ITestListener的實例來偵聽測試結果,並在失敗時進行截圖。

相關問題