• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Selenium Java - niezrozumiały błąd

Object Storage Arubacloud
0 głosów
332 wizyt
pytanie zadane 9 czerwca 2020 w C i C++ przez TomekN Początkujący (330 p.)

Cześć,
Napisałem prosty skrypt:
Ma on po prostu otworzyć przeglądarkę i wejść na stronę googla

package wp;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class PG1 {
	public static void main(String args[]) {
		System.setProperty("webdriver.gecko.driver", "C:\\Users\\Tomek\\Desktop\\IT\\geckodriver\\geckodriver.exe");
		WebDriver driver = new FirefoxDriver();
		System.out.println("Zaczynamy");
	    driver.get("http://google.com");
	}
}



Wyskakuje mi błąd:
"Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/exec/Executor"
i nie mam pojęcia co jest źle. Pomożecie?

 

komentarz 9 czerwca 2020 przez Wiciorny Ekspert (270,170 p.)
zmień kategorię na java

3 odpowiedzi

+2 głosów
odpowiedź 9 czerwca 2020 przez p099 Mądrala (6,390 p.)
Błąd masz podany na tacy, jest nim informacja o wyjątku
0 głosów
odpowiedź 9 czerwca 2020 przez mbabane Szeryf (79,280 p.)
Spróbuj dodać do projektu bibliotekę Apache Commons.
0 głosów
odpowiedź 9 czerwca 2020 przez Wiciorny Ekspert (270,170 p.)
brakuje Ci biblioteki, lub importu
"Exception in thread "main" java.lang.NoClassDefFoundError:"
NoClassDefFoundError: - brakuje Ci definicji tej klasy z biblioteki, albo import nie działa albo go nie dołączyłes.
komentarz 9 czerwca 2020 przez TomekN Początkujący (330 p.)
Wiem, że brakuje mi jakiegoś importu - tylko nie wiem jakiego

dodałem import org.apache.commons.*;

ale to nie pomaga
komentarz 9 czerwca 2020 przez mbabane Szeryf (79,280 p.)

WebDriver gdzieś pod spodem korzysta z:

org.apache.commons.exec.Executor.

http://commons.apache.org/proper/commons-exec/apidocs/org/apache/commons/exec/Executor.html

https://mvnrepository.com/artifact/org.apache.commons/commons-exec

W momencie uruchomienia programu nie ma tej klasy na classpath. Nazwa sugeruje, że klasa pochodzi z biblioteki Apache Commons. Prawdopodobnie z jakiejś przyczyny nie zostaje ona dołączana podczas uruchomiania aplikacji. Pytanie jak uruchamiasz ten program i jak dołączasz bibliotekę Apache Commons? (ewentualnie dołączyłeś ją w wersji niekompatybilnej z wersją Selenium). 

NoClassDefFoundError jest tylko nazwą błędu rzucaną przez JVM, nie jest to klasa której brakuje. import w tym przypadku nie pomoże.

komentarz 9 czerwca 2020 przez TomekN Początkujący (330 p.)

Jak widzisz, oznaczenie eclipse mówi, że import is never used.

komentarz 9 czerwca 2020 przez TomekN Początkujący (330 p.)
a wywala błąd, że go nie ma.

Pełen tekst błędu z konsoli;

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/exec/DaemonExecutor
    at org.openqa.selenium.os.OsProcess.<init>(OsProcess.java:54)
    at org.openqa.selenium.os.CommandLine.<init>(CommandLine.java:38)
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:183)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:147)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:125)
    at wp.PG1.main(PG1.java:10)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.exec.DaemonExecutor
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
    ... 10 more
komentarz 9 czerwca 2020 przez mbabane Szeryf (79,280 p.)

Jeśli używasz maven to pokaz sekcje depenencies. Jeśli nie to sprawdź w internecie jak załączyć dodatkowego jara (w tym przypadku jara z apache-commons-exec) do uruchamiania aplikacji w Eclipse.

komentarz 9 czerwca 2020 przez TomekN Początkujący (330 p.)

Z tego co wyczytałem w necie jest w różnych wersjach plików jar w guava, które nie odpowiadają temu co jest w selenium.

W tym momencie wywala błąd:

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;)V
    at org.openqa.selenium.remote.service.DriverService.checkExecutable(DriverService.java:146)
    at org.openqa.selenium.firefox.GeckoDriverService.access$000(GeckoDriverService.java:44)
    at org.openqa.selenium.firefox.GeckoDriverService$Builder.usingFirefoxBinary(GeckoDriverService.java:160)
    at org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:187)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:147)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:125)
    at wp.PG1.main(PG1.java:8)

 

Biblioteki wyglądają jn.

komentarz 9 czerwca 2020 przez mbabane Szeryf (79,280 p.)
Lepiej będzie jeśli zrobisz nowy projekt mavenowy.

Podobne pytania

0 głosów
0 odpowiedzi 104 wizyt
pytanie zadane 22 czerwca 2022 w Java przez blofeld Użytkownik (700 p.)
0 głosów
1 odpowiedź 281 wizyt
pytanie zadane 9 czerwca 2020 w Java przez juz_nie_mlody Początkujący (470 p.)
0 głosów
1 odpowiedź 446 wizyt

92,576 zapytań

141,426 odpowiedzi

319,651 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...