Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Protractor in STS IDE -> Could not find update-config.json

Currently I have Protractor v.5.1.1, Node.js v.6.10.0

All protractor tests work in window console but when I try to run them from STS IDE I get below error. Of course i did 'webdriver-manager update' but it doesn't help at all. Does anyone has an idea how to resolve this problem?

Below the error respectively when I use or do not 'directConnect'

[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 

or

[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 

My conf.js looks like:

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 () {}, }, 

I don't have selenium folder in the path node_modules/protractor/node_modules/webdriver-manager but I have package.json where I added "webdriver-update": "webdriver-manager update". This is the output of 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 
like image 276
EdXX Avatar asked Feb 23 '17 21:02

EdXX


People also ask

How to solve 'could not find update-config JSON'?

How to solve "Could not find update-config.json. Run 'webdriver-manager update' to download binaries" , when running npm command for protractor test Simply update the webdriver-manager that exist in protractor bin folder . Updating from root folder may not works. So run the command...

How to fix node_modules/protractor not updating WebDriver?

You just need to run this command and it fixes it - npm run webdriver-update it updates you webdriver in node_modules section under node_modules/protractor. These 2 lines are the main culprits. Just try running that command and it should fix your issue.

How to update protractor to the latest version?

To update specifically the one used by Protractor, you have to specify the path explicitly, like for example (starting from the root directory of your repo): The version argument is optional, running without it will update to the latest version. Sorry, something went wrong.

How to update WebDriver-manager in protractor?

Run 'webdriver-manager update' to download binaries" , when running npm command for protractor test Simply update the webdriver-manager that exist in protractor bin folder . Updating from root folder may not works. So run the command... node ./node_modules/protractor/node_modules/webdriver-manager/bin/webdriver-manager update


2 Answers

It looks like you are either using directConnect or launching with a local driver provider (not having seleniumAddress or directConnect) in your configuration file. You need to run webdriver-manager update.

Previously I had extra flags to not download standalone or gecko with webdriver-manager update --standalone false --gecko false. This is no longer the case if you are starting via a local driver provider. You will need the selenium standalone jar file.

You could run this with a script in package.json. Something like:

"scripts": {   "webdriver-update": "webdriver-manager update" } 

Then execute this with: npm run webdriver-update. How do you check if the binaries are there? In your project, navigate to node_modules/protractor/node_modules/webdriver-manager/selenium/. This is where the update-config.json and your downloaded binaries are located.

like image 156
cnishina Avatar answered Sep 24 '22 03:09

cnishina


You can try to update it like this, it will definitely update it in node_modules/protractor :

$ ./node_modules/protractor/bin/webdriver-manager update 
like image 25
Ya Yura Avatar answered Sep 26 '22 03:09

Ya Yura