7
@Test
public void myDriver() throws IOException, InterruptedException {


    FirefoxDriver myD = new FirefoxDriver();
    String vkw, vxpath, vtestdata;
    long iWait = 1000000000;

    String[][] xTC, xTS;

    xTC = readxl("C:\\Selenium\\KDF.xls", "Test case");
    xTS = readxl("C:\\Selenium\\KDF.xls", "Test steps");
    for (int i = 1; i < xTC.length; i++) {
        if (xTC[i][3].equalsIgnoreCase("Y")) {
            System.out.println("Yes");
            for (int k = 1; k < xTS.length; k++) {
                if (xTC[i][0].equalsIgnoreCase(xTS[k][1])) {
                    vkw = xTS[k][4];
                    vxpath = xTS[k][5];
                    vtestdata = xTS[k][5];

                        /*  if (vkw.equalsIgnoreCase("enter text")){
                                Fentertext(myD, vxpath, vtestdata);
                            }
                            */
                    if (vkw.equalsIgnoreCase("navigate browser")) {
                        FnavigateBrowser(myD, vtestdata);
                    }

                    Thread.sleep(iWait);

                }
            }
        }
    }
}

Error:- org.openqa.selenium.WebDriverException: f.QueryInterface is
not a function Command duration or timeout: 144 milliseconds Build
info: version: '2.39.0', revision: 'ff23eac', time: '2013-12-16
16:12:12' System info: host: 'del1-dhp-28988', ip: '172.16.45.14',
os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1',
java.version: '1.7.0_09' Session ID:
043a4dc7-520f-44a5-a74c-c6cb274d50b9 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=true, rotatable=false, locationContextEnabled=true,
applicationCacheEnabled=true, takesScreenshot=true, version=26.0}]  
    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 org.openqa.selenium.remote.RemoteWebDriver$RemoteNavigation.to(RemoteWebDriver.java:800)
    at KDF3.FnavigateBrowser(KDF3.java:185)
    at KDF3.myDriver(KDF3.java:50)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)  
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)  
    at java.lang.reflect.Method.invoke(Unknown Source)  
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)  
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)  
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)    
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)  
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)     
    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)    
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
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:
'del1-dhp-28988', ip: '172.16.45.14', os.name: 'Windows 7', os.arch:
'amd64', os.version: '6.1', java.version: '1.7.0_09' Driver info:
driver.version: unknown     
    at <anonymous class>.FirefoxDriver.prototype.get(file:///C:/Users/POORVA~1.SHA/AppData/Local/Temp/anonymous8563012586736156603webdriver-profile/extensions/fxdriver@googlecode.com/components/driver_component.js:8720)
    at <anonymous class>.DelayedCommand.prototype.executeInternal_/h(file:///C:/Users/POORVA~1.SHA/AppData/Local/Temp/anonymous8563012586736156603webdriver-profile/extensions/fxdriver@googlecode.com/components/command_processor.js:10831)
    at <anonymous class>.DelayedCommand.prototype.executeInternal_(file:///C:/Users/POORVA~1.SHA/AppData/Local/Temp/anonymous8563012586736156603webdriver-profile/extensions/fxdriver@googlecode.com/components/command_processor.js:10836)
    at <anonymous class>.DelayedCommand.prototype.execute/<(file:///C:/Users/POORVA~1.SHA/AppData/Local/Temp/anonymous8563012586736156603webdriver-profile/extensions/fxdriver@googlecode.com/components/command_processor.js:10778)
Michael Lihs
  • 7,460
  • 17
  • 52
  • 85
Poorva
  • 99
  • 1
  • 1
  • 2

6 Answers6

58

The error is being thrown by webdriver's get method that is navigating you to the url that you provided. Most probably your URL is missing a protocol. So a wild guess would be, that you are passing url as www.example.com, but what you want to give is http://www.example.com

Erki M.
  • 5,022
  • 1
  • 48
  • 74
  • 3
    That's spot on, but how did you get to that guess? The message doesn't help at all. – StudioWorks Sep 05 '14 at 20:19
  • 5
    `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 org.openqa.selenium.remote.RemoteWebDriver$RemoteNavigation.to(RemoteWebDriver.java:800) at KDF3.FnavigateBrowser(KDF3.java:185) at KDF3.myDriver(KDF3.java:50) at ` is the location that caught my attention, the solution was a guess : ) – Erki M. Sep 06 '14 at 11:53
  • Gosh, I would upvote it twice if I could! One for each time I forget that this is how I should define my URL and then find this answer. – Eugene S Oct 02 '15 at 07:11
3

WebDriver api sends RESTfull request to Selenium server to execute a command. REST services uses http or https protocol for request/response. Hence when we call the url without mentioning the protocol prefix (in our case http), exception is thrown.

AHiggins
  • 7,029
  • 6
  • 36
  • 54
  • Links to personal blogs don't really belong in an answer. Instead, why don't you put that in your personal profile? Your response has been flagged for deletion because of that link. – AHiggins Sep 19 '14 at 18:21
3

I ran into this error in a ruby on rails web app when running feature tests with rspec/capybara.

For me it was fixed by adding a "/" to the front of the url in the visit method.

so visit "your/test/path"

becomes visit "/your/test/path"

3

org.openqa.selenium.WebDriverException: f.QueryInterface is not a function exception happens because of the missing protocol. If you are using url without protocol like (http or https) then it throws above exception.

pete the pagan-gerbil
  • 3,136
  • 2
  • 28
  • 49
0

Another possibility is that you accidentally forgot/deleted the line require 'capybara/rails' in your test helper file in a Ruby on Rails project. Took me an hour to realize. Damn typos!

0

If the URL is saved with quotes in config file, it throws the f.queryInterface exception. Just remove the quotes for the URL and it will work fine.

Peanut
  • 3,753
  • 3
  • 31
  • 45
Rreddy
  • 1
  • Could you please elaborate more your answer adding a little more description about the solution you provide? – abarisone May 08 '15 at 07:16