Java:
public class WebSelenium {
static String downloadFilePath = "C:\\z";
public WebSelenium() {
}
public void downloadPDFFile(List<String> list) throws InterruptedException {
//WebDriverManager.chromedriver().setup();
System.setProperty("webdriver.chrome.driver", "C:/chromedriver.exe");
ChromeOptions options = new ChromeOptions();
HashMap<String, Object> chromePrefs = new HashMap<>();
chromePrefs.put("plugins.always_open_pdf_externally", true);
chromePrefs.put("download.default_directory", downloadFilePath);
options.setExperimentalOption("prefs", chromePrefs);
WebDriver driver = new ChromeDriver(options);
for (int i = 0; i < list.size(); i++) {
driver.get("http://asf/nr=" + list.get(i));
Thread.sleep(5000);
if (driver.findElement(By.xpath("/html/body/div/div[1]")).getText().equals("Die Suchanfrage wurde erfolgreich verarbeitet")) {
continue;
}
for (int j = 2; j < 6; j++) {
System.out.println(driver.findElement(By.xpath("/html/body/div[2]/table/tbody/tr[" + j + "]/td/a")).getText());
if (driver.findElement(By.xpath("/html/body/div[2]/table/tbody/tr[" + j + "]/td/a")).getAccessibleName().length() > 15) {
if (driver.findElement(By.xpath("/html/body/div[2]/table/tbody/tr[" + j + "]/td/a")).getAccessibleName().substring(driver.findElement(By.xpath("/html/body/div[2]/table/tbody/tr[" + j + "]/td/a")).getAccessibleName().length() - 3).equals("pdf")) {
driver.findElement(By.xpath("/html/body/div[2]/table/tbody/tr[" + j + "]/td/a")).click();
}
}
}
}
}
}
Code:
public class Controller implements Initializable {
public static final String FXML = "/fxml/hello-view.fxml";
static FileChooser chooser1 = new FileChooser();
static FileChooser chooser = new FileChooser();
static DirectoryChooser directoryChooser = new DirectoryChooser();
private List<String> list = new ArrayList<>();
private WebSelenium web = new WebSelenium();
@FXML
private TextField numbers;
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
directoryChooser.setInitialDirectory(new File("C:"));
}
public void onSearchInvoicnumber(ActionEvent actionEvent) throws InterruptedException {
String[] array = numbers.getText().split(",");
for (String number : array){
list.add(number.replaceAll("'", "").trim());
}
if (list != null) {
this.web.downloadPDFFile(list);
}
}
ich bekomme immer diese schreckliche Fehlermeldung
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver
at com.example.guiforqrcode.Controller.<init>(Controller.java:23)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:347)
at java.base/java.lang.Class.newInstance(Class.java:645)
at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:936)
at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:980)
at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:227)
at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:752)
at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2722)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2552)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2466)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2435)
at com.example.guiforqrcode.ScannerManager.showScene(ScannerManager.java:29)
at com.example.guiforqrcode.ScannerManager.initView(ScannerManager.java:22)
at com.example.guiforqrcode.ScannerManager.<init>(ScannerManager.java:18)
at com.example.guiforqrcode.Application.start(Application.java:11)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
... 1 more
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WebDriver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 29 more