web-dev-qa-db-fra.com

Selenium - org.openqa.Selenium.WebDriverException: f.QueryInterface n'est pas une fonction

@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/[email protected]/components/driver_component.js:8720)
    at <anonymous class>.DelayedCommand.prototype.executeInternal_/h(file:///C:/Users/POORVA~1.SHA/AppData/Local/Temp/anonymous8563012586736156603webdriver-profile/extensions/[email protected]/components/command_processor.js:10831)
    at <anonymous class>.DelayedCommand.prototype.executeInternal_(file:///C:/Users/POORVA~1.SHA/AppData/Local/Temp/anonymous8563012586736156603webdriver-profile/extensions/[email protected]/components/command_processor.js:10836)
    at <anonymous class>.DelayedCommand.prototype.execute/<(file:///C:/Users/POORVA~1.SHA/AppData/Local/Temp/anonymous8563012586736156603webdriver-profile/extensions/[email protected]/components/command_processor.js:10778)
6
Poorva

L'erreur est générée par la méthode get de webdriver qui vous dirige vers l'url que vous avez fournie. Il manque probablement un protocole à votre URL. Donc, une hypothèse sauvage serait que vous transmettez l'URL sous la forme www.example.com, mais ce que vous voulez donner est http://www.example.com

57
Erki M.

org.openqa.Selenium.WebDriverException: f.QueryInterface is not a function Une exception se produit à cause du protocole manquant. Si vous utilisez une URL sans protocole tel que (http ou https), alors l'exception ci-dessus est levée.

3
user3817496

J'ai rencontré cette erreur dans une application Web Ruby on Rails lors de l'exécution de tests de fonctionnalité avec rspec/capybara.

Pour moi, cela a été corrigé en ajoutant un "/" à l'avant de l'URL dans la méthode de visite.

alors visit "your/test/path"

devient visit "/your/test/path"

3
kane morgan

WebDriver api envoie une requête RESTfull au serveur Selenium pour exécuter une commande. REST services utilise le protocole http ou https pour la requête/réponse. Par conséquent, lorsque nous appelons l'URL sans mentionner le préfixe de protocole (dans notre cas, http), une exception est levée.

3
mahesh mathpal

Si l'URL est enregistrée avec des guillemets dans le fichier de configuration, l'exception f.queryInterface est levée. Supprimez simplement les guillemets pour l'URL et cela fonctionnera bien.

0
Rreddy

Une autre possibilité est que vous ayez accidentellement oublié/supprimé la ligne require 'capybara/Rails' dans votre fichier d'aide au test dans un projet Ruby on Rails. Cela m'a pris une heure pour réaliser. Putains de fautes de frappe!

0
Chris Cameron