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