Also, wenn ich versuche, eine chromedriver aus einer JAR-Datei zu verwenden, erhalte ich eine Ausnahme:ChromeDriver von IDE funktioniert, aber nicht aus dem Glas
Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/chrome/ChromeDriver
at SelJarTest.main(SelJarTest.java:13)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.chrome.ChromeDriver
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Allerdings, wenn ich das Programm von einer IDE ausführen (IntelliJ CE), es funktioniert gut.
Hier ist meine Maven Abhängigkeiten:
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.openqa.selenium.chrome.ChromeDriver</groupId>
<artifactId>selenium-java</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
<version>3.0.1</version>
</dependency>
</dependencies>
Und mein Code:
public class SelJarTest
{
private static final String WEB_DRIVER_PROP = "webdriver.chrome.driver");
public static void main(String[] args)
{
String oldProp = System.getProp(WEB_D_PROP);
System.setProp(WEB_DRIVER_PROP, "chromedriver" + File.seperator + "chromedriver.exe");
ChromeDriver cd = new ChromeDriver();
System.out.println("Enter stuff: ");
int userin;
Scanner scan = new Scanner(System.in);
while((userin = Integer.parseInt(scan.nextLine())) < 9)
{
if(userin %2 == 0)
cd.navigate().to("https://www.youtube.com");
}
scan.close();
cd.close();
System.clearProp(WEB_DRIVER_PROP);
if(oldProp != null)
System.setProp(WEB_DRIVER_PROP, oldProp);
System.out.println("Done.");
}
}
Für ein wenig mehr Klarheit ist die chromedriver.exe in einem Ordner chromedriver genannt, die im selben Verzeichnis ist wie das Glas:
Nichts, was ich online gefunden habe, scheint zu helfen, dies zu lösen. Was gefunden hat, dass dem Fehler ähnlich war, war ein Bündel von "Oh, Sie brauchen solche und solche Abhängigkeit, oder solche und solche Datei." Ich möchte die Verwendung von Umgebungsvariablen vermeiden, so dass meine Mitarbeiter das Programm möglicherweise ausführen können, wenn ich die Datei auf einen Server lege, den sie verwenden können.
Jede Hilfe wird sehr geschätzt.
Wie sind Sie mit der JAR-Datei? Vermissen Sie den Klassenpfad? Ich benutze nicht maven, um den Test zu starten (und es ist richtig konfiguriert), zum Beispiel die Art, wie Sie Ihre Abhängigkeiten definiert wurden nur der "Kompilierphase" hinzugefügt, dies ist der Standardabhängigkeiten Bereich https: //maven.apache .org/guides/einleitung/einleitung in abhängigkeitsmechanismus.html # Dependency_Scope – ITomas
Ich habe gerade das jar von CMD ausgeführt: java -jar SelJarTest.jar – techset7set
Mögliches Duplikat von [Was sind Java Klassenpfad und Pfad?] (http: //stackoverflow.com/questions/17409714/what-are-java-classpath-and-path) –