以下声明与Selenium webdriver 2.39一起使用时效果很好。将此升级到webdriver 2.40后,下面的语句不起作用。
File scrFile=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File(System.getProperty("user.dir")+"/output//files/"+fileName));
抛出此异常。 org.openqa.selenium.chrome.ChromeDriver无法强制转换为org.openqa.selenium.TakesScreenshot
任何人都有如何解决这个问题?
编辑:我没有修改上面的代码。只有改变我做的是用selenium-java-2.40.0.jar替换selenium-java-2.39.0.jar。
答案 0 :(得分:1)
可能值得检查您是否正在使用Java 7编译器。 这是我的代码片段与Chrome一起正常工作:
TakesScreenshot yourScreenshot = ( TakesScreenshot ) driver;
File tempfile = yourScreenshot.getScreenshotAs( OutputType.FILE );
System.out.println( tempfile.getAbsolutePath() );
File myScreenshotDirectory = new File( "Screenshots Folder" );
myScreenshotDirectory.mkdirs();
File screenshotImage = new File( myScreenshotDirectory,"ScreenShotImage.png" );
FileUtils.moveFile( tempfile, screenshotImage );
答案 1 :(得分:0)
问题已解决。
我有selendroid jar也与测试相关(用于在Android设备中运行我的测试)。由于类路径中的jar的顺序,selendroid jar导致了这个问题。当我改变顺序(selenium jar first,selendroid next)时,错误就消失了。
谢谢大家。