我无法启动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正常运行。)
答案 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)
NoSuchMethod
错误可能意味着类路径出现问题。答案 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>