org.openqa.selenium包可以从多个模块访问

时间:2017-10-19 16:30:28

标签: eclipse selenium selenium-webdriver

我正在使用:

  • Firefox 56.0.1
  • Selenium 3.6.0
  • Windows 10家庭版
  • Gecko Driver 0.19.0

错误消息是

  

可以从多个包中访问org.openqa.selenium包   module:client.combined,net.bytebuddy“

Screenshot of error

8 个答案:

答案 0 :(得分:27)

当您在ModulePath中添加外部jar时会发生这种情况。

<强>解决方案

  1. 从节点&#34; Modulepath&#34;。
  2. 中删除外部jar
  3. 选择节点&#34; Classpath&#34;然后添加外部罐子。
  4. 检查所有罐子是否在节点&#34; Classpath&#34;。

答案 1 :(得分:2)

在类路径中添加所需的JAR而不是模块路径。同时删除可能引用上述包的不必要的JAR。

答案 2 :(得分:2)

问题是您正在将Jar文件添加到Modulepath而不是Classpath。 去 Project-&gt; BuildPath-&gt; Config BuildPath-&gt;从Modulepath中移除Jars-&gt;然后点击classpath-&gt;添加外部selenium jar文件。

click on the screenshot for more clarity

答案 3 :(得分:1)

我遇到了同样的错误,删除了对其中一个jar文件的引用解决了这个问题。 删除对您在java构建路径中添加的jar文件之一的引用 从您添加的屏幕截图中我看到您已参考两者 客户端联合3.6.0-sources.jar 和 客户端联合3.7.0.jar 两个包都实现了相同的类。 删除对1的引用,看看是否有帮助。

答案 4 :(得分:0)

我对Selenium一无所知,但看起来你有两个模块包含完全相同的包名:

  • client.combined
  • net.bytebuddy

所以当你说例如import org.openqa.selenium.WebDriver Eclipse不知道您是否要使用client.combinednet.bytebuddy中的该包。

您需要在该导入语句中添加一个前缀,该前缀将指定您是从org.openqa.selenium还是从client.combined导入包net.bytebuddy

你可以这样做:

  • import client.combined.org.openqa.selenium.WebDriver
  • import client.combined.org.openqa.selenium.firefox.FirefoxDriver

  • import net.bytebuddy.org.openqa.selenium.WebDriver
  • import net.bytebuddy.org.openqa.selenium.firefox.FirefoxDriver

您还可以尝试从项目中删除任一软件包(client.combinednet.bytebuddy

答案 5 :(得分:0)

我有同样的问题。我使用JDK 9和eclipse氧气64位版本(Selenium 3.9.1)。我的第一个想法,它是JDK 9,但我在IntelliJ IDEA JDK 9上进行了测试并且没有任何问题。所以我安装了带有JDK 8的eclipse氧气32位版本(在32位上没有JDK 9版本),问题就消失了。

答案 6 :(得分:0)

当在多个jar文件中都可以使用相同的Java软件包代码(软件包名称+类名称)时,就会发生这种情况;对于默认模块,每个jar都作为模块公开。模块本质上不能导出相同的软件包名称。这更多是代码清除任务。

答案 7 :(得分:-1)

在类路径而不是模块路径中添加所有必需的jar文件。我也发生了同样的问题,但是将罐子添加到classpath后,它得到了解决。