2014-03-26 60 views
0

以下语句在Selenium webdriver 2.39中工作得很好。将这个升级到webdriver 2.40后,下面的语句不起作用。Selenium 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

如何启动浏览器?您如何启动Web Driver实例? – Manigandan

+0

driver = new ChromeDriver(); driver.get(“”); 正如我上面提到的,它需要截图,如果我有硒-java-2.39.0.jar。如果我尝试用selenium-java-2.40.0.jar替换,那么只有当我截取屏幕截图时才会得到异常。代码没有变化。 看起来很奇怪。 有人可以确认,如果你使用的是我使用的同一个jar - selenium-java-2.40.0.jar ?? – vins

回答

0

问题已解决。

我有selendroid jar以及相关的测试(这是用来在Android设备上运行我的测试)。由于classpath中jar包的顺序,selendroid jar引发了这个问题。当我改变顺序时(硒罐首先,selendroid下一步),错误消失了。

谢谢大家。

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); 
+0

是的。我已经安装了jdk1.7。 TakesScreenshot yourScreenshot =(TakesScreenshot)驱动程序 - >这是发生异常的地方。 – vins

+0

我认为这应该很好,只需在我的机器上使用chrome和Firefox驱动程序进行验证即可。 我可以看到你铸造了你的驱动程序 – Zach

+0

我已经包含了这个jar。 selenium-java-2.40.0.jar 如果它工作正常,你能否让我知道你所关联的所有罐子(与此有关)是什么? – vins

相关问题