2

我无法启动 Firefox - 使用 selenium 2.41(仅限此版本)

这就是我调用的方式..

WebDriver d = new FirefoxDriver();
d.get("https://www.google.com");

低于异常..

java.lang.NoSuchMethodError: org.openqa.selenium.Proxy.extractFrom(Lorg/openqa/selenium/Capabilities;)Lorg/openqa/selenium/Proxy;
at org.openqa.selenium.firefox.FirefoxDriver.dropCapabilities(FirefoxDriver.java:313)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:192)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:186)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:182)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:95)
at com.qglobal.automation.utility.convertt.main(convertt.java:103)

任何想法??

编辑

我刚刚发现,如果我将 selendroid-standalone-0.8.0-with-dependencies.jar 关联起来(我需要这个在 android 中运行我的测试),就会发生这种情况。如果我删除此 jar,则不会发生上述异常。

我怎样才能在我的测试中同时拥有两个罐子?任何想法?

(问题仅在 Firefox 中发现。Chrome 工作正常。)

4

5 回答 5

6

我很幸运能够在短时间内获得相同问题的解决方案。根据“vlns”和“user1825477”的答案的建议,首先我在我的 pom.xml 文件中检查了 selenium-api 的版本,确实是 2.40 将其更改为 2.41。删除所有外部 jar 和 Maven 依赖项,并将 pom 文件重新运行为 Maven Build。一旦涉及到所有 Maven 依赖项,通过交叉验证确切的版本,仔细地单独添加 jar 文件,通过交叉验证,我的意思是,我基本上采用了所有 jar 的最新版本,我有几个版本较低,所以改变了他们。

我想花一点时间来正确选择罐子是个好主意。

于 2014-06-17T04:22:08.740 回答
3

我自己使用 Maven 遇到了这个问题。似乎核心问题是在 2.41+ 中,Firefox 驱动程序使用的 Proxy.java 类有一个新方法 extractFrom ,这在以前的版本中是不存在的。一些第三方驱动程序的依赖项强制使用旧版本的 selenium-api 包,其中包含 Proxy.java。

必须为 selenium-api 解析它的第三方依赖项添加排除项,或者将 selenium-api 显式添加到依赖项列表并在 2.41 版本中指定它。

于 2014-05-23T18:10:27.360 回答
2
  • 启动 java 程序时,检查类路径中是否存在 Selenium JAR。NoSuchMethod错误可能意味着类路径存在问题。
  • 如果使用驱动程序 2.41 不重要,请尝试降级到较低版本。根据我的经验,这并没有什么不同(除非您在 v2.41 中特别寻找某些功能)
于 2014-04-01T04:42:23.360 回答
1

问题已解决。

我有 selendroid jar 也与测试相关联(用于在 Android 设备上运行我的测试)。由于类路径中 jar 的顺序,selendroid jar 导致了问题。当我更改顺序(首先是硒罐,其次是 selendroid)时,错误消失了。

谢谢你们。

于 2014-04-02T20:35:34.440 回答
0

将以下内容添加到 pom.xml 为我解决了这个问题

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-firefox-driver</artifactId>
        <version>2.47.1</version>
    </dependency>
于 2015-09-19T10:58:52.320 回答