0

我正在使用 Selenium 2 和 Testng。selenium-java-2.33.0

尝试仅在失败的测试用例上截取浏览器的屏幕截图。我将 webdriver 存储在 Hashtable 中,并带有与每种浏览器类型(IE、Firefox、Chrome 和 Safari)相关联的 id。在清理例程“@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

4

0 回答 0