Derzeit habe ich Protractor v.5.1.1, Node.js v.6.10.0
Alle Winkelmessertests funktionieren in der Fensterkonsole, aber wenn ich versuche, sie von STS IDE aus auszuführen, erhalte ich einen Fehler. Natürlich habe ich 'Webdriver-Manager Update' gemacht, aber es hilft überhaupt nicht. Hat jemand eine Idee, wie man dieses Problem lösen kann?
Unter dem Fehler, wenn ich 'directConnect' verwende oder nicht
[22:21:48] I/launcher - Running 1 instances of WebDriver
[22:21:48] I/direct - Using ChromeDriver directly...
[22:21:48] E/direct - Error code: 135
[22:21:48] E/direct - Error message: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.
[22:21:48] E/direct - Error: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.
at IError (D:\STS_workspace\jgh\node_modules\protractor\built\exitCodes.js:5:1)
at ProtractorError (D:\STS_workspace\jgh\node_modules\protractor\built\exitCodes.js:10:9)
at BrowserError (D:\STS_workspace\jgh\node_modules\protractor\built\exitCodes.js:51:9)
at Direct.getNewDriver (D:\STS_workspace\jgh\node_modules\protractor\built\driverProviders\direct.js:62:31)
at Runner.createBrowser (D:\STS_workspace\jgh\node_modules\protractor\built\runner.js:194:43)
at q.then.then (D:\STS_workspace\jgh\node_modules\protractor\built\runner.js:338:29)
at _fulfilled (D:\STS_workspace\jgh\node_modules\q\q.js:834:54)
at self.promiseDispatch.done (D:\STS_workspace\jgh\node_modules\q\q.js:863:30)
at Promise.promise.promiseDispatch (D:\STS_workspace\jgh\node_modules\q\q.js:796:13)
at D:\STS_workspace\jgh\node_modules\q\q.js:556:49
[22:21:48] E/launcher - Process exited with error code 135
oder
[21:19:23] I/launcher - Running 1 instances of WebDriver
[21:19:23] E/local - Error code: 135
[21:19:23] E/local - Error message: No update-config.json found. Run 'webdriver-manager update' to download binaries.
[21:19:23] E/local - Error: No update-config.json found. Run 'webdriver- manager update' to download binaries.
at IError (D:\STS_workspace\jgh\node_modules\protractor\built\exitCodes.js:5:1)
at ProtractorError (D:\STS_workspace\jgh\node_modules\protractor\built\exitCodes.js:10:9)
at BrowserError (D:\STS_workspace\jgh\node_modules\protractor\built\exitCodes.js:51:9)
at Local.addDefaultBinaryLocs_ (D:\STS_workspace\jgh\node_modules\protractor\built\driverProviders\local.js:40:23)
at Local.setupDriverEnv (D:\STS_workspace\jgh\node_modules\protractor\built\driverProviders\local.js:81:14)
at Local.setupEnv (D:\STS_workspace\jgh\node_modules\protractor\built\driverProviders\driverProvider.js:110:34)
at q.then (D:\STS_workspace\jgh\node_modules\protractor\built\runner.js:334:41)
at _fulfilled (D:\STS_workspace\jgh\node_modules\q\q.js:834:54)
at self.promiseDispatch.done (D:\STS_workspace\jgh\node_modules\q\q.js:863:30)
at Promise.promise.promiseDispatch (D:\STS_workspace\jgh\node_modules\q\q.js:796:13)
[21:19:23] E/launcher - Process exited with error code 135
Mein conf.js sieht so aus:
var SpecReporter = require('jasmine-spec-reporter').SpecReporter;
exports.config = {
// directConnect:true,
specs: ['spec4.js'],
framework: 'jasmine2' ,
onPrepare: function () {
jasmine.getEnv().addReporter(new SpecReporter({
spec: {
displayStacktrace: true,
displaySuccessesSummary: true,
displayFailuresSummary: true,
displayPendingSummary: true,
displaySpecDuration: true,
},
}));
},
jasmineNodeOpts: {
defaultTimeoutInterval: 25000,
print: function () {},
},
Ich habe keinen Selenium-Ordner im Pfad node_modules/protractor/node_modules/webdriver-manager, aber ich habe package.json hinzugefügt, wo ich "webdriver-update" hinzugefügt habe: "webdriver-manager update" . Dies ist die Ausgabe von npm run webdriver-update:
D:\STS_workspace\jgh>npm run webdriver-update
npm WARN invalid config proxy="http:"
npm WARN invalid config Must be a full url with 'http://'
npm WARN invalid config proxy="http:"
npm WARN invalid config Must be a full url with 'http://'
npm ERR! Windows_NT 10.0.14393
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "webdriver-update"
npm ERR! node v6.10.0
npm ERR! npm v3.10.10
npm ERR! path D:\STS_workspace\jgh\package.json
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open 'D:\STS_workspace\jgh\package.json'
npm ERR! enoent ENOENT: no such file or directory, open 'D:\STS_workspace\jgh\package.json'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! Please include the following file with any support request:
npm ERR! D:\STS_workspace\jgh\npm-debug.log
Es sieht so aus, als würden Sie entweder directConnect
verwenden oder mit einem local
-Treiberanbieter (ohne seleniumAddress
oder directConnect
) in Ihrer Konfigurationsdatei starten. Sie müssen webdriver-manager update
ausführen.
Zuvor hatte ich zusätzliche Flags, um Standalone oder Gecko nicht mit webdriver-manager update --standalone false --gecko false
herunterzuladen. Dies ist nicht mehr der Fall, wenn Sie über einen lokalen Treiberanbieter starten. Sie benötigen die Selen-Standalone-JAR-Datei.
Sie können dies mit einem Skript in package.json ausführen. So etwas wie:
"scripts": {
"webdriver-update": "webdriver-manager update"
}
Dann führe das aus mit: npm run webdriver-update
. Wie prüfen Sie, ob die Binärdateien vorhanden sind? Navigieren Sie in Ihrem Projekt zu node_modules/protractor/node_modules/webdriver-manager/Selenium/
. Hier befinden sich der update-config.json
und Ihre heruntergeladenen Binärdateien.
Sie können versuchen, es so zu aktualisieren, es wird definitiv in node_modules/protractor aktualisiert:
$ ./node_modules/protractor/bin/webdriver-manager update
Führen Sie einfach webdriver-manager mit dem Befehl npx in Ihrem Projektordner aus.
npx webdriver-manager update
Unter MacOS habe ich diesen Fehler behoben, indem ich meiner Protractor-Konfigurationsdatei die seleniumAddress hinzugefügt habe (zuvor habe ich directConnect verwendet, also kommentiert das aus)
// directConnect: true,
// baseUrl: 'http://localhost:4000/',
seleniumAddress: 'http://localhost:4444/wd/hub/',
Ich starte jetzt den Protractor-Server durch Ausführen von: $ webdriver-manager start
Und in einem anderen Terminalfenster starte ich Tests mit: $ ng e2e
Sie müssen nur diesen Befehl ausführen und ihn beheben - npm run webdriver-update
Er aktualisiert Ihren Web-Treiber im Abschnitt node_modules unter node_modules/protractor
.
Diese zwei Linien sind die Hauptschuldigen. Versuchen Sie einfach, diesen Befehl auszuführen und das Problem sollte behoben sein.
[22:21:48] E/direct - Error message: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.
[22:21:48] E/direct - Error: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.
Hoffentlich hilft das!