我在早期版本的Firefox中使用了2.44 - 它工作正常。
FirefoxDriver ffd = new FirefoxDriver();
ffd.get("www.google.com");
现在,即使这个简单的调用也会引发异常:
Exception in thread "main" org.openqa.selenium.WebDriverException: f.QueryInterface is not a function
Command duration or timeout: 190 milliseconds
Build info: version: '2.45.0', revision: '5017cb8', time: '2015-02-26 23:59:50'
System info: host: 'Shivam-PC', ip: '192.168.0.107', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_31'
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{applicationCacheEnabled=true, rotatable=false, handlesAlerts=true, databaseEnabled=true, version=38.0.1, platform=WINDOWS, nativeEvents=false, acceptSslCerts=true, webStorageEnabled=true, locationContextEnabled=true, browserName=firefox, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: 19f3d00e-ad14-4fc8-9d29-cee47ae44186
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:156)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:599)
at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:304)
at sele.Sample.main(Sample.java:13)
Caused by: org.openqa.selenium.WebDriverException: f.QueryInterface is not a function
Build info: version: '2.45.0', revision: '5017cb8', time: '2015-02-26 23:59:50'
System info: host: 'Shivam-PC', ip: '192.168.0.107', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_31'
Driver info: driver.version: unknown
at <anonymous class>.FirefoxDriver.prototype.get(file:///C:/Users/Shivam/AppData/Local/Temp/anonymous4862788616202211612webdriver-profile/extensions/fxdriver@googlecode.com/components/driver-component.js:10132)
at <anonymous class>.DelayedCommand.prototype.executeInternal_/h(file:///C:/Users/Shivam/AppData/Local/Temp/anonymous4862788616202211612webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:12274)
at <anonymous class>.DelayedCommand.prototype.executeInternal_(file:///C:/Users/Shivam/AppData/Local/Temp/anonymous4862788616202211612webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:12279)
at <anonymous class>.DelayedCommand.prototype.execute/<(file:///C:/Users/Shivam/AppData/Local/Temp/anonymous4862788616202211612webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:12221)
答案 0 :(得分:1)
从版本到版本似乎是常见问题(我遇到了FF v.36这样的问题)。主要工作是不要将FF更新到最新版本(如果最坏的情况已经发生,则降级)。如果您的测试适用于特定的FF版本 - &gt;坚持至少直到新版本的WebDriver发布。
对我自己来说,最可靠的版本是FF v.33。
答案 1 :(得分:1)
在我看来,在Firefox上处理Selenium测试的最强大的解决方案是坚持使用Extended Support Release文件中提到的最新ESR(CHANGELOG)。 Selenium团队必须跟上Firefox中引入的变化,这自然会导致最新版本出现问题 - not much has changed since the Selenium RC days in this respect。
更新2016-01-18:现在,CHANGELOG中提到了两个 ESR版本,因为在Firefox 33中,对原生事件的支持已被取消,合成事件。维基states:
原生事件更好地模拟用户交互,而合成 事件是平台无关的,这在Linux时很重要 使用了替代窗口管理器,请参阅native events on Linux。 只要有可能就应该使用本机事件。
因此,根据您的操作系统,您可以尝试使用这两个版本来找到更适合您的版本:
最后提到的是Selenium 2.47.0,其中包括Firefox版本31,38和39.
如果您想使用最新的ESR版本,Mozilla也提供link for that。
答案 2 :(得分:0)
这是由于您的网址...将其更改为 http://www.google.com 或 https://www.google.com
希望这可以解决您的问题...如果您有任何疑问,请回复