为什么我的IDE在错误的依赖文件夹中寻找所需的类?

问题描述 投票:0回答:1

我正在尝试运行一个运行良好的脚本,直到更改主文件夹为止。更改主文件夹后,我遇到了一些问题,但能够解决它们。我唯一无法解决的是以下错误。

    Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/remote/internal/JsonToWebElementConverter
    at BrowserStackAndroid.main(BrowserStackAndroid.java:43)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.remote.internal.JsonToWebElementConverter
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 1 more

这是一个有趣的错误,经过一番研究,我还没回过神来。

它要搜索的类位于org.selenium.remote依赖项中。除了不在内部文件夹中,而在远程文件夹中。因此,它要搜索的类是JsonToWebElementConverter。

此类位于以下路径org / openqa / selenium / remote / JsonToWebElementConverter

IDE(或Maven?)正在寻找的文件夹是组织/ openqa /硒/远程/内部其中只有类WebElementToJsonConverter

我已经尝试通过maven通过几种不同的方式,使用不同的依赖项等来重新安装该库,但无法解决此问题。

我以前从未遇到过这样的问题,所以我很高兴看到解决方案将是什么。

注意:由于以下代码行而引发错误:

AndroidDriver<AndroidElement> driver = new AndroidDriver<AndroidElement>(new URL("https://" + userName + ":" + accessKey + "@hub-cloud.browserstack.com/wd/hub"), caps);

此项目以前工作得很好,但是一旦我更改了项目的目录,就停止工作了。

java android selenium appium
1个回答
0
投票

这是因为您有2个依赖项的相同类或库。只需删除基于selenium的依赖项即可解决此问题,因为所有selenium dependencies已随Appium java client一起提供。对于classpath,您可以在java docs中检查>

注意:

对于maven project,所有已编译的Java文件都应位于target文件夹中。如果您遇到相同的问题,则可以在classpath中添加缺少的类,目标应为target文件夹,如Java文档中所述
© www.soinside.com 2019 - 2024. All rights reserved.