Selenium 2.41 - 无法启动Firefox

时间:2014-04-01 04:05:03

标签: android selenium-webdriver webdriver remotewebdriver

我无法启动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正常运行。)

5 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

我很幸运能够快速获得相同问题的解决方案。有来自的建议 &#34; vlns&#34;和#34; user1825477&#34;的答案,首先我在我的pom.xml文件中检查了selenium-api的版本,确实是2.40将其更改为2.41。删除了所有外部jar和Maven依赖项,并将pom文件作为Maven Build重新运行。一旦涉及所有Maven依赖关系,通过交叉验证确切的版本,仔细添加jar文件,通过交叉验证我的意思是,我基本上采用了所有罐子的最新版本,我有几个更低版本所以更改它们。

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

答案 2 :(得分:2)

  • 启动java程序时,检查Selenium JAR是否存在于类路径中。 NoSuchMethod错误可能意味着类路径出现问题。
  • 如果使用驱动程序2.41并不重要,请尝试降级到较低版本。根据我的经验,这没有什么区别(除非你有特别在v2.41中寻找的功能)

答案 3 :(得分:1)

问题已解决。

我有selendroid jar也与测试相关(用于在Android设备中运行我的测试)。由于类路径中的jar的顺序,selendroid jar导致了这个问题。当我改变顺序(selenium jar first,selendroid next)时,错误就消失了。

谢谢大家。

答案 4 :(得分:0)

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

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-firefox-driver</artifactId>
        <version>2.47.1</version>
    </dependency>