2011-10-11 70 views
0

在我的IntelliJ主項目中,我無法運行硒測試。我現在創建了一個簡化項目,其中只有The 5 Minute Getting Started Guide的示例代碼,並且正在使用selenium-server-standalone-2.8.0.jar。Selenium 2.8 UnsatisfiedLinkError IEDriver

當我使用FirefoxDriver運行時,我沒有任何問題。當我嘗試但與IEDriver跑,我得到以下的輸出:

"C:\Program Files\Java\jdk1.6.0_26\bin\java" -Didea.launcher.port=7534 "-Didea.launcher.bin.path=C:\Program Files\JetBrains\IntelliJ IDEA 10.0.3\bin" -Dfile.encoding=ISO-8859-1 -classpath "C:\Program Files\Java\jdk1.6.0_26\jre\lib\alt-rt.jar;C:\Program Files\Java\jdk1.6.0_26\jre\lib\alt-string.jar;C:\Program Files\Java\jdk1.6.0_26\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.6.0_26\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.6.0_26\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.6.0_26\jre\lib\jce.jar;C:\Program Files\Java\jdk1.6.0_26\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0_26\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.6.0_26\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.6.0_26\jre\lib\resources.jar;C:\Program Files\Java\jdk1.6.0_26\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0_26\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.6.0_26\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.6.0_26\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.6.0_26\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.6.0_26\jre\lib\ext\sunpkcs11.jar;C:\development\playground\selenium\out\production\Selenium Playground;C:\Users\rachel.swailes\Downloads\selenium-server-standalone-2.8.0.jar;C:\Program Files\JetBrains\IntelliJ IDEA 10.0.3\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain Example 
new File(".").getAbsolutePath() = C:\development\playground\selenium\. 
Exception in thread "main" java.lang.ExceptionInInitializerError 
    at org.openqa.selenium.ie.InternetExplorerDriver.setup(InternetExplorerDriver.java:84) 
    at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:50) 
    at Example.main(Example.java:13) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115) 
Caused by: org.openqa.selenium.WebDriverException: java.lang.UnsatisfiedLinkError: Unable to load library 'IEDriver': com.sun.jna.Native.open(Ljava/lang/String;)J 
Build info: version: '2.8.0', revision: '14056', time: '2011-10-06 12:41:26' 
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_26' 
Driver info: driver.version: InternetExplorerDriver 
    at org.openqa.selenium.ie.InternetExplorerDriverServer.initializeLib(InternetExplorerDriverServer.java:129) 
    at org.openqa.selenium.ie.InternetExplorerDriverServer.<clinit>(InternetExplorerDriverServer.java:38) 
    ... 8 more 
Caused by: java.lang.UnsatisfiedLinkError: Unable to load library 'IEDriver': com.sun.jna.Native.open(Ljava/lang/String;)J 
    at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:166) 
    at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:239) 
    at com.sun.jna.Library$Handler.<init>(Library.java:140) 
    at com.sun.jna.Native.loadLibrary(Native.java:393) 
    at com.sun.jna.Native.loadLibrary(Native.java:378) 
    at org.openqa.selenium.ie.InternetExplorerDriverServer.initializeLib(InternetExplorerDriverServer.java:125) 
    ... 9 more 

Process finished with exit code 1 

現在我已經通過內部InternetExplorerDriverServer代碼追蹤,我可以看到IEDriver.dll顯示在臨時目錄中,但它不能加載它出於某種原因。

我正在運行Windows 7和IE8,並且我已經使用「以管理員身份運行」加載了IntelliJ,並且此時我只是出於想法。我也不知道IntelliJ在這種模式下啓動的所有進程是否也具有管理員權限,或者這是否爲紅色鯡魚。

另外,在IEDriver.dll上使用Dependency Walker,我可以看到它認爲IEShims.dll沒有鏈接 - 但是,我不知道如何處理這些信息。

任何人都可以推薦別的東西給我試試嗎?

[編輯]

現在我已經嘗試過在XP和我有同樣的問題,所以我想這不是Windows 7的權限。它必須與IntelliJ加載文件的方式有關。如果我將執行行復制並粘貼到命令行中,它將運行,但它不會從IntelliJ運行。

非常感謝, 雷切爾

回答

0

多挖後...

的IntelliJ 10.0.3被添加到C:\Program Files\JetBrains\IntelliJ IDEA 10.0.3\bin\..\.\bin;的路徑。當我將它添加到命令行時,應用程序會失敗,當我刪除它時它會通過。

我試過10.5社區版,並有同樣的問題,但在10.5旗艦版沒有問題。我不認爲會有什麼不同,所以直到今天我還沒有升級終極版。

因此總之 - 答案是升級IntelliJ。 :)

0

我有同樣的問題與IJ-IC 11.1.4,有同樣的問題,但 你只需要這個dll目錄添加到 「vm options」 像這樣

-Djava.library.path=C:\lib