我正在使用Selenium 2和Testng。 硒的Java-2.33.0
尝试仅在失败的测试用例中拍摄浏览器的屏幕截图。我将webdriver存储在Hashtable中,其ID与每种浏览器类型(IE,Firefox,Chrome和Safari)相关联。在清理例程“@afterMethod”中,我获取该webdriver。这是代码:
//代码1:
if (webDriver instanceof TakesScreenshot) {
File tempFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(tempFile, new File("screenshots.png"));
}
//代码2:
EventFiringWebDriver efiringDriver = new EventFiringWebDriver(webDriver);
File scrFile = efiringDriver.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("screenshot.png"));
这两个代码路径都适用于Firefox,但对于其他浏览器,会抛出强制转换异常。
java.lang.ClassCastException:org.openqa.selenium.chrome.ChromeDriver无法强制转换为org.openqa.selenium.firefox.FirefoxDriver