IOS 驱动程序创建没有 class 定义错误

No class definition error with IOS driver creation

我在尝试 运行 一些代码来设置用于 Appium 的 IOSDriver 时遇到 org.openqa.selenium.remote.JsonToWebElementConverter 的 NoClassDefFound 错误。到目前为止,我要做的就是设置功能并打开驱动程序。但是,错误发生在驱动程序初始化行上。

到目前为止,我已尝试将 org.openqa.selenium.remote.JsonToWebElementConverter 导入 class,但仍然出现相同的错误。我的 Eclipse 指向正确的 JDK 并且 Java 已正确安装。我相信我也有所有的依赖关系。

依赖关系:

<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.1.1</version>
</dependency>

<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>7.6.0</version>
</dependency>

<dependency>
<groupId>com.github.appium</groupId>
<artifactId>java-client</artifactId>
<version>7.6.0</version>
</dependency>

</dependencies>

我正在尝试设置驱动程序。

        try {
        IOSDriver driver = new IOSDriver(new URL("http://localhost:4723/wd/hub"),capabilites);
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

产生错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/remote/internal/JsonToWebElementConverter

在 appiumtests.BaseIOTest.main(BaseIOTest.java:31) 原因:java.lang.ClassNotFoundException:org.openqa.selenium.remote.internal.JsonToWebElementConverter 在 java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ... 1 个

selenium 依赖性存在问题。

Appium 7.6 使用 selenium 版本 3.141.59,而您添加了 selenium 4.1.1,因此它们不兼容。

1 尝试从 pom 中删除对 selenium 的依赖。

2只留下

<dependency>
    <groupId>io.appium</groupId>
    <artifactId>java-client</artifactId>
    <version>7.6.0</version>
</dependency>

用于 appium java 客户端。