2014-04-01 80 views
2

我无法启动Firefox - 硒2.41(仅此版本)硒2.41 - 无法启动Firefox

这是我如何调用..

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-独立-0.8.0-与-dependencies.jar(我需要这在运行Android我的测试)。如果我删除了这个jar,那么上面的异常不会发生。

我怎么能在我的测试中有两个罐子?任何想法?

(问题只在Firefox中发现,Chrome的工作正常。)

回答

1

问题已解决。

我有selendroid jar以及相关的测试(这是用来在Android设备上运行我的测试)。由于classpath中jar包的顺序,selendroid jar引发了这个问题。当我改变顺序时(硒罐首先,selendroid下一步),错误消失了。

谢谢大家。

+1

我真的不理解为什么人们对这个答案有问题。它解释了问题,它是如何解决的,它来自问题本身的海报,所以它显然适用。 –

2
  • 检查,当你启动你的java程序中硒JAR是否存在在类路径中。 NoSuchMethod错误可能意味着类路径的问题。
  • 如果使用驱动程序2.41并不重要,请尝试降级到较低版本。根据我的经验,这并不有所作为(除非有特点,你是特别在V2.41寻找)
3

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

我们必须将排除项添加到第三方依赖项来解决selenium-api问题,或者显式地将selenium-api添加到依赖项列表并在版本2.41中指定它。

3

我很幸运能够在jiffy中获得相同问题的解决方案。从 “vlns”和“user1825477”的回答中,我首先检查了我的pom.xml文件中的selenium-api版本,确实是2.40将其更改为2.41。删除了所有的外部jar和Maven依赖项,并重新运行了pom文件作为Maven Build。一旦涉及到所有Maven依赖关系,通过交叉验证确切版本,仔细地添加jar文件,通过交叉验证,我的意思是,我基本上使用了所有jar的最新版本,我有一些更低版本的更改他们。

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

0

将以下内容添加到pom。xml修复了我的问题

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