当尝试使用 FirefoxDriver 的 .get() 方法使用 selenium 打开新的 url 时,新的 url 没有被打开,而是出现一个空白屏幕,并出现以下异常。
我的 Firefox 版本是 27 版本“selenium-2.39.0”的 Selenium jar 在 ChromeDriver 和 IRDriver 的情况下,我遇到相同的异常
Exception in thread "main" org.openqa.selenium.WebDriverException: f.QueryInterface is not a function
Command duration or timeout: 50 milliseconds
Build info: version: '2.39.0', revision: 'ff23eac', time: '2013-12-16 16:12:12'
System info: host: 'ANKUR-PC', ip: '169.254.81.96', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_40'
Session ID: 3e90ea0a-fce7-44c4-9df0-15231046ae45
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{platform=XP, acceptSslCerts=true, javascriptEnabled=true, cssSelectorsEnabled=true, databaseEnabled=true, browserName=firefox, handlesAlerts=true, browserConnectionEnabled=true, webStorageEnabled=true, nativeEvents=false, rotatable=false, locationContextEnabled=true, applicationCacheEnabled=true, takesScreenshot=true, version=27.0.1}]
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:193)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554)
at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:276)
at Selenium.main(Selenium.java:14)
Caused by: org.openqa.selenium.remote.ErrorHandler$UnknownServerException: f.QueryInterface is not a function
Build info: version: '2.39.0', revision: 'ff23eac', time: '2013-12-16 16:12:12'
System info: host: 'ANKUR-PC', ip: '169.254.81.96', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_40'
Driver info: driver.version: unknown
at <anonymous class>.FirefoxDriver.prototype.get(file:///C:/Users/ANKUR/AppData/Local/Temp/anonymous1797840660297297360webdriver-profile/extensions/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="9ef8e6faecf7e8fbecdef9f1f1f9f2fbfdf1fafbb0fdf1f3" rel="noreferrer noopener nofollow">[email protected]</a>/components/driver_component.js:8720)
at <anonymous class>.DelayedCommand.prototype.executeInternal_/h(file:///C:/Users/ANKUR/AppData/Local/Temp/anonymous1797840660297297360webdriver-profile/extensions/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ec8a94889e859a899eac8b83838b80898f838889c28f8381" rel="noreferrer noopener nofollow">[email protected]</a>/components/command_processor.js:10831)
at <anonymous class>.DelayedCommand.prototype.executeInternal_(file:///C:/Users/ANKUR/AppData/Local/Temp/anonymous1797840660297297360webdriver-profile/extensions/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0c6a74687e657a697e4c6b63636b60696f636869226f6361" rel="noreferrer noopener nofollow">[email protected]</a>/components/command_processor.js:10836)
at <anonymous class>.DelayedCommand.prototype.execute/<(file:///C:/Users/ANKUR/AppData/Local/Temp/anonymous1797840660297297360webdriver-profile/extensions/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="89eff1edfbe0ffecfbc9eee6e6eee5eceae6edeca7eae6e4" rel="noreferrer noopener nofollow">[email protected]</a>/components/command_processor.js:10778)
我正在使用的代码是:
Proxy prox = new Proxy();
prox.setAutodetect(true);
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability("browser", "firefox");
cap.setCapability(CapabilityType.PROXY,prox);
FirefoxDriver f= new FirefoxDriver(cap);
f.get("www.google.com");
最佳答案
请在网址前使用http
前缀。将该行重写为 f.get("http://www.google.com");
。这应该可行。
关于selenium - 无法使用 selenium webdriver 打开新 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21991974/