Erreur : java.lang.NoClassDefFoundError: org/openqa/selenium/HasInputDevices , lors de l'exécution de tests à l'aide de ghostdriver
Je suis en train de lancer mon webdriver des cas de test à l'aide de ghostdriver (Phantomjs) mais qui donne l'erreur java.lang.NoClassDefFoundError: org/openqa/selenium/HasInputDevices
.
Tout semble aller bien pour moi, mais je ne comprends pas pourquoi il y a erreur.
OS WIN7
Le codage en JAVA 1.7
Cadre : java1.7+testng6.5.2+maven3
Sélénium-version de java 2.35.0
cas de test
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriverService;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.Test;
public class ghosttest {
WebDriver driver;
@Test
public void testing() {
DesiredCapabilities caps = new DesiredCapabilities();
caps.setJavascriptEnabled(true);
caps.setCapability(
PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
"D:/dumps/phantomjs-1.9.1-windows/phantomjs-1.9.1-windows/phantomjs.exe");
driver = new PhantomJSDriver(caps);
driver.get("http://www.google.com");
String Logintext = driver.findElement(By.linkText("Maps")).getText();
System.out.println(Logintext);
}
}
maven dependency pour ghostdriver
<dependency>
<groupId>com.github.detro.ghostdriver</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.0.3</version>
</dependency>
OriginalL'auteur paul | 2013-09-16
Vous devez vous connecter pour publier un commentaire.
Votre problème, c'est que ghostdriver n'est pas compatible avec le Sélénium 2.35.
Si vous modifiez votre dépendance à 2,34 vous serez amende. Vous aurez à attendre une nouvelle PhantomJSDriver malheureusement, si vous avez spécifiquement besoin de Sélénium 2.35.
Actuellement la dernière version de phantomjsdriver est 1.0.4, vous avez eu la 1.0.3.
Je pense que vous avez un problème avec votre chemin. Je suis sous Linux, bien que dans mon cas, j'ai installé PhantomJS par nodejs, avec
npm -g install phantomjs
. Alors il a juste travaillé, je n'ai pas besoin de spécifier n'importe quel binaire, mais bien sûr nœud ajouté au chemin d'accès système. Vous pourriez essayer de faire de l'ajouter vous-même dans le PATH de Windows si ce n'est pas déjà fait. J'ai ensuite essayer de retirer les capacités de configuration et juste essayer le pilote directement. Je pense qu'il prend en charge JavaScript automatiquement de toute façon.Je pense que je vais obtenir le succès, si je le fais de cette façon, c'est à dire l'ajout de nœud dans le chemin d'accès au système, mais je ne sais pas comment faire. Pourriez-vous s'il vous plaît partager morceau de code.
Pour ceux qui ne sont pas à l'aide de GhostDriver et toujours face à la même question, Veuillez jeter un oeil à la solution de here
OriginalL'auteur jodyfanning