首页 > 解决方案 > 我不能在我的 JavaFX 项目中将 HtmlUnitDriver 与 Maven 一起使用

问题描述

我正在尝试在我的 JavaFX 项目中使用 HtmlUnitDriver 但是当我添加 HtmlUnitDriver 我得到这些错误我尝试了不同的版本并且仍然是相同的错误我不知道该怎么做

Caused by: java.lang.ClassNotFoundException: org.apache.xml.utils.PrefixResolver
Caused by: java.lang.ClassNotFoundException: org.apache.xml.utils.PrefixResolver
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 45 more

我的 JavaFX 项目中只有一个类

Main.java 类包含以下代码


  package com.ali.chegg.chegg;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.io.IOException;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.AnchorPane;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

/**
 * JavaFX App
 */
public class App extends Application {

    private static Scene scene;

    @Override
    public void start(Stage stage) throws IOException {
        
 AnchorPane p=new AnchorPane();
                Label lbl = new Label("Title);
                Button b=new Button("get title");
                b.setLayoutX(100);
                b.setOnAction((t) -> {
                 HtmlUnitDriver d=new HtmlUnitDriver();
                 d.get("https://www.google.com");
                 lbl.setText(d.getTitle());
                });
                p.getChildren().addAll(lbl,b);
        scene = new Scene(p,640, 480);
        stage.setScene(scene);
        stage.show();
 
    }

    
    public static void main(String[] args) {
 
             
        launch(args);

    }

}

和 POM.xml 文件:

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.ali.chegg</groupId>
    <artifactId>Chegg</artifactId>
    <version>1.0</version>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>14</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>14</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-htmlunit-driver -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-htmlunit-driver</artifactId>
    <version>2.0.0</version>
    <type>jar</type>
</dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <release>11</release>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>0.0.4</version>
                <configuration>
                    <mainClass>com.ali.chegg.chegg.App</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

顺便说一句,我使用的是 Apache NetBeans 11.3 和 jdk 14.0.1

标签: javamavenjavafxhtmlunit-driver

解决方案


推荐阅读