2014-03-26 120 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

相關問題