2017-03-29 9 views
3

Winkelmesser funktioniert gut mit Chrome, aber ich bekomme es nicht zum Starten von Firefox oder Internet Explorer.Verwenden von Winkelmesser mit Firefox oder IE

  • Windows 7
  • Knoten v6.9.1

Snippet von package.json:

"scripts": { 
    .... 
    "webdriver-manager-update": "webdriver-manager update --ie", 
    "protractor": "protractor protractor.conf.js", 
    ... 
}, 
... 
"devDependencies": { 
    ... 
    "protractor": "5.1.1", 
    ... 
} 

protractor.conf.js:

exports.config = { 
    capabilities: { 
     browserName: "firefox" // or "internet explorer" 
    }, 
    specs: ["target/e2e/**/*.e2e-spec.js"] 
}; 

Nachläuft, <project-home>\node_modules\protractor\node_modules\webdriver-manager\selenium\ enthält die Dateien chromedriver_2.28.exe, geckodriver-v0.15.0.exe und IEDriverServer3.3.0.exe.

Wenn npm run protractor läuft, ich einen Fehler:

[12:29:45] I/launcher - Running 1 instances of WebDriver 
[12:29:45] I/local - Starting selenium standalone server... 
[12:29:46] I/local - Selenium standalone server started at http://192.168.213.25:62661/wd/hub 
[12:29:46] E/launcher - The path to the driver executable must be set by the webdriver.gecko.driver system property 

(für IE, verweist sie auf die webdriver.ie.driver Systemeigenschaft)

Nach vielen googeln habe ich versucht, die folgenden Fehlerbehebungen:

a) Fügen Sie <project-home>\node_modules\protractor\node_modules\webdriver-manager\selenium\ zur Systemumgebungsvariablen Path hinzu. Dies scheint keinen Unterschied zu machen. In

b) die folgende Zeile protractor.conf.js:

seleniumArgs: ["-Dwebdriver.gecko.driver=<project-home>\\node_modules\\protractor\\node_modules\\webdriver-manager\\selenium\\geckodriver-v0.15.0.exe"], 

Jetzt npm run protractor ergibt:

[12:40:35] I/launcher - Running 1 instances of WebDriver 
[12:40:35] I/local - Starting selenium standalone server... 
[12:40:35] E/launcher - Error: Error: Server terminated early with status 1 
    at Error (native) 
    at earlyTermination.catch.e (<project-home>\node_modules\selenium-webdriver\remote\index.js:252:52) 
    at process._tickCallback (internal/process/next_tick.js:103:7) 
[12:40:35] E/launcher - Process exited with error code 100 

(analoges Verhalten mit IE)

Meinen Suchergebnissen legen nahe, ich bin nicht die einzige jemand mit diesem Problem, aber leider habe ich keine Lösung gefunden.

Antwort

5

Schließlich fand ich die Lösung in einem answer by Nick Tomlin:

Sein nicht seleniumArgs Sie einstellen müssen, aber localSeleniumStandaloneOpts.jvmArgs. Also, in protractor.conf.js, schreiben:

localSeleniumStandaloneOpts: { 
    jvmArgs: ["-Dwebdriver.gecko.driver=<project-home>\\node_modules\\protractor\\node_modules\\webdriver-manager\\selenium\\geckodriver-v0.15.0.exe"] 
    }, 

(analoger für IE)

1

Sie dies mit einem localSeleniumStandaloneOpts tun könnte. Mit der lokalen Treiberoption können Sie den Selenium-Standalone-Server vor dem Progractor-Test starten, den Test ausführen und schließlich den Server herunterfahren.

Eine andere Möglichkeit, dies zu tun, ist mit webdriver-manager start --ie und die seleniumAddress in Ihrer Konfigurationsdatei. In Ihrer Konfigurationsdatei werden Sie seleniumAddress: "http://127.0.0.1:4444/wd/hub" setzen.

Eine kurze Notiz über Firefox. Stellen Sie sicher, dass Sie die neuesten Gecko-Treiber und Firefox-Versionen ausführen. Wenn die Firefox-Tests nicht ordnungsgemäß ausgeführt werden, sehen Sie sich die gecko driver github issues page an.

Noch ein Hinweis zum Internet Explorer.Sie sollten IE11 und die 32-Bit-Treiberversion verwenden. Wenn Sie sich die Protractor issues page ansehen, wurde festgestellt, dass iditreiber Probleme hat. Ich gehe davon aus, dass diese Probleme nicht behoben werden.

+0

Ich kann bestätigen, dass der andere Weg funktioniert. Man sollte nicht vergessen den globalen 'webdriver-manager update -ie' zu starten, wenn man den globalen 'webdriver-manager start -ie' ausführen möchte. –

Verwandte Themen