2011-10-11 4 views
0

Dans mon projet principal dans IntelliJ, je ne peux pas faire fonctionner mes tests au sélénium. J'ai maintenant créé un projet réduit qui a seulement le code d'exemple de The 5 Minute Getting Started Guide et utilise le selenium-server-standalone-2.8.0.jar.Selenium 2.8 UnsatisfiedLinkError IEDriver

Lorsque je cours avec le FirefoxDriver, je n'ai aucun problème. Lorsque je tente de courir avec le IEDriver cependant, je reçois la sortie suivante:

"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 

Maintenant, je l'ai tracé à travers le code à l'intérieur InternetExplorerDriverServer et je peux voir la IEDriver.dll apparaître dans un répertoire temporaire, mais il ne peut pas chargez-le pour une raison quelconque. Je suis sous Windows 7 et IE8 et j'ai chargé IntelliJ en utilisant "Exécuter en tant qu'administrateur" et je suis juste à court d'idées à ce stade. Je ne sais pas non plus si tous les processus lancés par IntelliJ dans ce mode ont également des droits d'administrateur ou s'il s'agit d'un casse-tête.

En outre, en utilisant Dependency Walker sur IEDriver.dll, je peux voir qu'il pense que IEShims.dll n'est pas lié - mais encore une fois, je ne sais pas quoi faire avec cette information.

Quelqu'un peut-il suggérer autre chose pour moi d'essayer?

[modifier]

J'ai maintenant essayé sur XP et j'ai le même problème, donc je suppose que ce ne sont pas les autorisations de Windows 7. Cela doit être quelque chose à voir avec la façon dont IntelliJ charge le fichier. Si je copie et colle la ligne d'exécution dans la ligne de commande, elle s'exécutera, mais ne fonctionnera pas depuis IntelliJ.

Un grand merci, Rachel

Répondre

0

Après avoir creusé beaucoup ...

IntelliJ 10.0.3 ajoutais C:\Program Files\JetBrains\IntelliJ IDEA 10.0.3\bin\..\.\bin; sur le chemin. Lorsque j'ajoutais ceci à la ligne de commande, l'application échouait et quand je l'enlevais, elle passait.

J'ai essayé sur 10.5 Édition de communauté et ai eu le même problème, mais sur 10.5 Édition Ultime il n'y a aucun problème. Je ne pensais pas qu'il y aurait une différence donc je n'ai pas mis à jour mon Ultimate Edition jusqu'à aujourd'hui. Donc, en bref - la réponse a été de mettre à jour IntelliJ. :)

0

J'ai même problème avec IJ-IC 11.1.4, avait même question mais vous avez juste besoin d'ajouter ce répertoire dll à "vm options" comme celui-ci

-Djava.library.path=C:\lib