Protractor: Tests fail after upgrade to version 0.20.1

Created on 26 Mar 2014  ยท  15Comments  ยท  Source: angular/protractor

I'm in the process of rewriting the e2e tests from the angularfire-seed to use protractor instead of karma/angular-scenario and experience some unsurmountable issues. Please let me know how I can help to narrow the issue further.

After upgrading using the following statements on a mac os x 10.6.8

# npm update -g protractor
/usr/local/share/npm/bin/protractor -> /usr/local/share/npm/lib/node_modules/protractor/bin/protractor
/usr/local/share/npm/bin/webdriver-manager -> /usr/local/share/npm/lib/node_modules/protractor/bin/webdriver-manager
[email protected] /usr/local/share/npm/lib/node_modules/protractor
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected] ([email protected], [email protected])
โ””โ”€โ”€ [email protected] ([email protected], [email protected])

# webdriver-manager update
Updating selenium standalone
downloading http://selenium-release.storage.googleapis.com/2.40/selenium-server-standalone-2.40.0.jar...
Updating chromedriver
downloading https://chromedriver.storage.googleapis.com/2.9/chromedriver_mac32.zip...
chromedriver_2.9.zip downloaded to /usr/local/share/npm/lib/node_modules/protractor/selenium/chromedriver_2.9.zip
selenium-server-standalone-2.40.0.jar downloaded to /usr/local/share/npm/lib/node_modules/protractor/selenium/selenium-server-standalone-2.40.0.jar

all previously passing tests fail as follows:

# protractor test/protractor.conf.js 

------------------------------------
PID: 86484 (capability: chrome #1)
------------------------------------

Starting selenium standalone server...
Selenium standalone server started at http://10.141.161.87:62864/wd/hub
FFFFFFFFF

Failures:

  1) my app should automatically redirect to /home when location hash/fragment is empty
   Message:
     UnknownError: unknown error: unhandled inspector error: {"code":-32603,"message":"Cannot navigate to invalid URL"}
  (Session info: chrome=33.0.1750.152)
  (Driver info: chromedriver=2.9.248307,platform=Mac OS X 10.6.8 x86) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 1.19 seconds
Build info: version: '2.40.0', revision: 'fbe29a9', time: '2014-02-19 20:54:28'
System info: host: 'akrubic.local', ip: '10.141.161.87', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.6.8', java.version: '1.6.0_65'
Session ID: 205c4ba1bb21eb167b9b28ca8a858252
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{platform=MAC, acceptSslCerts=true, javascriptEnabled=true, browserName=chrome, chrome={userDataDir=/var/folders/rw/rw1quTqkG0OG+Z3EziQH+k+++TI/-Tmp-/.org.chromium.Chromium.MzgZMT}, rotatable=false, locationContextEnabled=true, version=33.0.1750.152, takesHeapSnapshot=true, cssSelectorsEnabled=true, databaseEnabled=false, handlesAlerts=true, browserConnectionEnabled=false, nativeEvents=true, webStorageEnabled=true, applicationCacheEnabled=false, takesScreenshot=true}]
   Stacktrace:
     Error: 
  at [object Object].<anonymous> (/Users/akrubic/Development/StartUpWeekend/ajsfire_statistified/test/e2e/myapp.spec.js:4:3)
  at Object.<anonymous> (/Users/akrubic/Development/StartUpWeekend/ajsfire_statistified/test/e2e/myapp.spec.js:1:63)
  at require (module.js:380:17)
  at /usr/local/share/npm/lib/node_modules/protractor/lib/runner.js:71:12

At async task:
      UnknownError: unknown error: unhandled inspector error: {"code":-32603,"message":"Cannot navigate to invalid URL"}
  (Session info: chrome=33.0.1750.152)
  (Driver info: chromedriver=2.9.248307,platform=Mac OS X 10.6.8 x86) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 1.19 seconds
Build info: version: '2.40.0', revision: 'fbe29a9', time: '2014-02-19 20:54:28'
System info: host: 'akrubic.local', ip: '10.141.161.87', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.6.8', java.version: '1.6.0_65'
Session ID: 205c4ba1bb21eb167b9b28ca8a858252
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{platform=MAC, acceptSslCerts=true, javascriptEnabled=true, browserName=chrome, chrome={userDataDir=/var/folders/rw/rw1quTqkG0OG+Z3EziQH+k+++TI/-Tmp-/.org.chromium.Chromium.MzgZMT}, rotatable=false, locationContextEnabled=true, version=33.0.1750.152, takesHeapSnapshot=true, cssSelectorsEnabled=true, databaseEnabled=false, handlesAlerts=true, browserConnectionEnabled=false, nativeEvents=true, webStorageEnabled=true, applicationCacheEnabled=false, takesScreenshot=true}]
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
==== async task ====
WebDriver.navigate().to(app/index.html)
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
==== async task ====
asynchronous test function
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>

  2) my app should automatically redirect to /home when location hash/fragment is empty
   Message:
     Error: Error while waiting for Protractor to sync with the page: {}
   Stacktrace:
     Error: 
  at [object Object].<anonymous> (/Users/akrubic/Development/StartUpWeekend/ajsfire_statistified/test/e2e/myapp.spec.js:9:3)
  at Object.<anonymous> (/Users/akrubic/Development/StartUpWeekend/ajsfire_statistified/test/e2e/myapp.spec.js:1:63)
  at require (module.js:380:17)
  at /usr/local/share/npm/lib/node_modules/protractor/lib/runner.js:71:12

At async task:
      Error: Error while waiting for Protractor to sync with the page: {}
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
==== async task ====
WebDriver.executeScript()
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
==== async task ====
asynchronous test function
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>

....

  30) my app login should log in with valid fields
   Message:
     Error: Error while waiting for Protractor to sync with the page: {}
   Stacktrace:
     Error: 
  at [object Object].<anonymous> (/Users/akrubic/Development/StartUpWeekend/ajsfire_statistified/test/e2e/myapp.spec.js:140:5)
  at [object Object].<anonymous> (/Users/akrubic/Development/StartUpWeekend/ajsfire_statistified/test/e2e/myapp.spec.js:94:3)
  at Object.<anonymous> (/Users/akrubic/Development/StartUpWeekend/ajsfire_statistified/test/e2e/myapp.spec.js:1:63)
  at require (module.js:380:17)
  at /usr/local/share/npm/lib/node_modules/protractor/lib/runner.js:71:12

At async task:
      Error: Error while waiting for Protractor to sync with the page: {}
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
==== async task ====
WebDriver.executeScript()
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
==== async task ====
asynchronous test function
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>

  31) my app login should log in with valid fields
   Message:
     UnknownError: javascript error: angular is not defined
JavaScript stack:
ReferenceError: angular is not defined
    at eval (eval at executeAsyncScript (unknown source), <anonymous>:8:27)
    at eval (eval at executeAsyncScript (unknown source), <anonymous>:12:10)
    at eval (eval at executeAsyncScript (unknown source), <anonymous>:12:36)
    at executeAsyncScript (<anonymous>:314:26)
    at <anonymous>:330:29
    at callFunction (<anonymous>:222:33)
    at <anonymous>:232:23
    at <anonymous>:233:3
    at Object.InjectedScript._evaluateOn (<anonymous>:613:39)
    at Object.InjectedScript._evaluateAndWrap (<anonymous>:573:52)
  (Session info: chrome=33.0.1750.152)
  (Driver info: chromedriver=2.9.248307,platform=Mac OS X 10.6.8 x86) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 9 milliseconds
Build info: version: '2.40.0', revision: 'fbe29a9', time: '2014-02-19 20:54:28'
System info: host: 'akrubic.local', ip: '10.141.161.87', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.6.8', java.version: '1.6.0_65'
Session ID: d48d6d3b167a37417e5d82f75ad3f338
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{platform=MAC, acceptSslCerts=true, javascriptEnabled=true, browserName=chrome, chrome={userDataDir=/var/folders/rw/rw1quTqkG0OG+Z3EziQH+k+++TI/-Tmp-/.org.chromium.Chromium.ka6R37}, rotatable=false, locationContextEnabled=true, version=33.0.1750.152, takesHeapSnapshot=true, cssSelectorsEnabled=true, databaseEnabled=false, handlesAlerts=true, browserConnectionEnabled=false, nativeEvents=true, webStorageEnabled=true, applicationCacheEnabled=false, takesScreenshot=true}]
   Stacktrace:
     Error: 
  at [object Object].<anonymous> (/Users/akrubic/Development/StartUpWeekend/ajsfire_statistified/test/e2e/myapp.spec.js:100:5)
  at [object Object].<anonymous> (/Users/akrubic/Development/StartUpWeekend/ajsfire_statistified/test/e2e/myapp.spec.js:94:3)
  at Object.<anonymous> (/Users/akrubic/Development/StartUpWeekend/ajsfire_statistified/test/e2e/myapp.spec.js:1:63)
  at require (module.js:380:17)
  at /usr/local/share/npm/lib/node_modules/protractor/lib/runner.js:71:12

At async task:
      UnknownError: javascript error: angular is not defined
JavaScript stack:
ReferenceError: angular is not defined
    at eval (eval at executeAsyncScript (unknown source), <anonymous>:8:27)
    at eval (eval at executeAsyncScript (unknown source), <anonymous>:12:10)
    at eval (eval at executeAsyncScript (unknown source), <anonymous>:12:36)
    at executeAsyncScript (<anonymous>:314:26)
    at <anonymous>:330:29
    at callFunction (<anonymous>:222:33)
    at <anonymous>:232:23
    at <anonymous>:233:3
    at Object.InjectedScript._evaluateOn (<anonymous>:613:39)
    at Object.InjectedScript._evaluateAndWrap (<anonymous>:573:52)
  (Session info: chrome=33.0.1750.152)
  (Driver info: chromedriver=2.9.248307,platform=Mac OS X 10.6.8 x86) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 9 milliseconds
Build info: version: '2.40.0', revision: 'fbe29a9', time: '2014-02-19 20:54:28'
System info: host: 'akrubic.local', ip: '10.141.161.87', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.6.8', java.version: '1.6.0_65'
Session ID: d48d6d3b167a37417e5d82f75ad3f338
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{platform=MAC, acceptSslCerts=true, javascriptEnabled=true, browserName=chrome, chrome={userDataDir=/var/folders/rw/rw1quTqkG0OG+Z3EziQH+k+++TI/-Tmp-/.org.chromium.Chromium.ka6R37}, rotatable=false, locationContextEnabled=true, version=33.0.1750.152, takesHeapSnapshot=true, cssSelectorsEnabled=true, databaseEnabled=false, handlesAlerts=true, browserConnectionEnabled=false, nativeEvents=true, webStorageEnabled=true, applicationCacheEnabled=false, takesScreenshot=true}]
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
==== async task ====
WebDriver.executeScript()
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
==== async task ====
asynchronous test function
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>
    at <anonymous>

Finished in 43.691 seconds
9 tests, 31 assertions, 31 failures

Shutting down selenium standalone server.

Before the upgrade the tests seemed to pass, but it failed in the results gathering phase:

# protractor test/protractor.conf.js 

------------------------------------
PID: 84638 (capability: chrome #1)
------------------------------------

Starting selenium standalone server...
Selenium standalone server started at http://10.141.161.87:55907/wd/hub
Started
.........

9 specs, 0 failures
Finished in 30.43 seconds

/usr/local/share/npm/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1549
      throw error;
            ^
TypeError: Object  has no method 'results'
    at jasmineNodeOpts.onComplete (/usr/local/share/npm/lib/node_modules/protractor/lib/runner.js:47:19)
    at jasmineDone (/usr/local/share/npm/lib/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-console.js:79:5)
    at dispatch (/usr/local/share/npm/lib/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-2.0.0.js:1566:28)
    at /usr/local/share/npm/lib/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-2.0.0.js:1549:11
    at QueueRunner.clearStack (/usr/local/share/npm/lib/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-2.0.0.js:506:9)
    at QueueRunner.run (/usr/local/share/npm/lib/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-2.0.0.js:1505:12)
    at next (/usr/local/share/npm/lib/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-2.0.0.js:1517:37)
    at complete (/usr/local/share/npm/lib/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-2.0.0.js:1703:9)
    at QueueRunner.clearStack (/usr/local/share/npm/lib/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-2.0.0.js:506:9)
    at QueueRunner.run (/usr/local/share/npm/lib/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-2.0.0.js:1505:12)
==== async task ====
WebDriver.executeScript()
    at webdriver.WebDriver.schedule (/usr/local/share/npm/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:267:15)
    at webdriver.WebDriver.executeAsyncScript (/usr/local/share/npm/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:507:15)
    at /Users/akrubic/Development/StartUpWeekend/ajsfire_statistified/test/e2e/myapp.spec.js:102:22
    at /usr/local/share/npm/lib/node_modules/protractor/jasminewd/index.js:54:12
    at webdriver.promise.ControlFlow.runInNewFrame_ (/usr/local/share/npm/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1445:20)
    at webdriver.promise.ControlFlow.runEventLoop_ (/usr/local/share/npm/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1310:8)
    at wrapper [as _onTimeout] (timers.js:252:14)
    at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
==== async task ====
    at Object.<anonymous> (/usr/local/share/npm/lib/node_modules/protractor/jasminewd/index.js:53:12)
    at Object.<anonymous> (/usr/local/share/npm/lib/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-2.0.0.js:290:12)
    at attemptAsync (/usr/local/share/npm/lib/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-2.0.0.js:1520:12)
    at QueueRunner.run (/usr/local/share/npm/lib/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-2.0.0.js:1496:16)
    at next (/usr/local/share/npm/lib/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-2.0.0.js:1517:37)
    at callDone (/usr/local/share/npm/lib/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-2.0.0.js:287:11)
    at /usr/local/share/npm/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/base.js:1178:15
    at webdriver.promise.ControlFlow.runInNewFrame_ (/usr/local/share/npm/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1445:20)
    at notify (/usr/local/share/npm/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:328:12)
[launcher] Runner Process Exited With Error Code: 8
needs more info question

Most helpful comment

Just a small side note, if you are running protractor with grunt, the selenium jar must be updated in the grunt-protractor-runner dir.

So the command is:

 ./node_modules/grunt-protractor-runner/node_modules/protractor/bin/webdriver-manager update

I was first updating it at: ./node_modules/protractor/ and that would only work when you run protractor from command line.

I post this because others may find it useful.

All 15 comments

Were these working with a previous version of Protractor, or only with the scenario runner? Could you share a failing test, not just the output?

The tests seemed to work with a previous version (see output and comment above at the very end). I believe it was version 0.19.1, but not certain.

They are just an attempt to foray into protractor based on the angularfire-seed e2e tests and may contain mistakes (see https://gist.github.com/a5sk4s/9822278)

It's hard to give you any information without a minimal problem case. Could you find a condensed issue?

Maybe, if I were more savvy with protractor - closing the issue - any other sources of support?

Hello all/Julie,

I just upgraded protractor from 0.16.x to 0.20.1 on WIN and MAC...also upgraded webdriver-manager:
webdriver-manager update after upgrading protractor
Now my tests fail...any help is much obliged

Some Examples of my setup:

conf file:

$ less config/e2e.conf.js
/*jshint node:true*/
'use strict';

var path = require('path');
var cfg = require('./project');

exports.config = {
  /*
  The address of a running selenium server.
  Uncomment the following statement to use a srvr that is
  already running.
  */
  seleniumAddress: 'http://localhost:4444/wd/hub',

  // Spec patterns are relative to the location of this config.
  specs: [
    path.join('../', cfg.path.test.e2e, '**/*.spec.js')
  ],

  capabilities: {
    browserName: 'chrome',
    chromeOptions: {
      args: ['--disable-extensions']
    }
  },

  // A base URL for your application under test. Calls to protractor.get()
  // with relative paths will be prepended with this.
  baseUrl: 'http://localhost:9001',

  jasmineNodeOpts: {
    onComplete: null,
    isVerbose: false,
    showColors: true,
    includeStackTrace: true,
    defaultTimeoutInterval: 10000
  }
};

code (example):

/*jshint node:true*/
/*global describe, beforeEach, it, expect*/
'use strict';
var IndexPage = require('./IndexPage');

describe('E2E: index page', function() {

  var page = new IndexPage();

  beforeEach(function() {
    page.get();
  });

  describe('index', function() {
    it('should display the correct title', function() {
      expect(page.getTitle()).toBe('some proprietary title');
    });
  });
});

more code (example):

/*jshint node:true*/
/*global element, by, describe, it, beforeEach, by, expect*/
'use strict';

var IndexPage = require('../IndexPage');
var fs = require('fs');

var stubData = fs.readFileSync('some/stub/data', 'utf8');
stubData = JSON.parse(stubData);

describe('E2E: homepage notifications', function() {

  var page = new IndexPage();

  beforeEach(function() {
    page.get();
  });

  it('should be on the page with 3 values', function() {

    var elems = element.all(
      by.repeater('some proprietary repeater'));

    expect(elems.count()).toBe(3);

  });

  it('1st value should match the stub', function() {
    var expected = stubData.entries[0].someJson;

    var actual = element(
      by.repeater('some proprietary repeater').row(0)
    );

    expect(actual.getText()).toBe(expected);

  });
});

output:

$ protractor config/e2e.conf.js

------------------------------------
PID: 9036 (capability: chrome #1)
------------------------------------

Using the selenium server at http://localhost:4444/wd/hub
Cannot read property 'matcherFn_' of undefined
[launcher] Runner Process Exited With Error Code: 1

The error message suggests that it's a Jasmine related issue (matcherFn is a jasmine thing). Could you check the version of minijasminenode that's being used? (e.g. using npm ls)?

Yes ma'am, it is:

for the version of ptor that works:

-PROPRIETARY-
โ””โ”€โ”ฌ [email protected]
  โ””โ”€โ”€ [email protected]

for the version of ptor that breaks:

-PROPRIETARY-
โ””โ”€โ”ฌ [email protected]
  โ””โ”€โ”€ [email protected]

Note: I accidentally ran npm update after pointing my package.json to ptor 0.20.x. Now its working. So maybe a transitive dependency issue?

Remove the protractor dependency from package.json (currently with [email protected]) and run npm install protractor --save-dev (currently with [email protected])

I've just cloned the repo and I'm gettint the same error as @wayneseymour

Cannot read property 'matcherFn_' of undefined

After I execute:
npm install protractor --save-dev

I'm getting new error:

throw new Error('Could not find chromedriver at ' +
          ^
Error: Could not find chromedriver at /Users/lucas/Projects/personal/angular-     seed/node_modules/protractor/selenium/chromedriver.exe

The funny thing is I'm running MacOS so I don't know why it tries to use .exe.

UPDATE

If I change browser to 'firefox' in protractor-conf.js I get this error:

node_modules/protractor/lib/driverProviders/local.js:61
throw new Error('there\'s no selenium server jar at the specified ' +
      ^
Error: there's no selenium server jar at the specified location. Do you have the correct ve

I can confirm that following @ajf- 's advice and removing the protractor dependency from package.json and running npm install protractor --save-dev does fix the above issue.

After getting the cannot read the matcherFn file error, I tried the following as suggested but still got an error (listed at bottom) :
(1) remove protractor dependency from package.json
(2) run "npm install protractor --save-dev"

I resolved it with the following:
(3) added back protractor dependency to package.json
(4) run "npm install"

Sorry I don't know npm or protractor well enough to say why but if it is helpful to others or if there is something else that I should be aware of, please share.

Error that I got after steps 1 & 2 above (I replaced full error path text with "(path)" below ):
Using ChromeDriver directly...

(path)\GitHub\node_modulesprotractor\node_modules\selenium-webdriver\net\index.js:48
interfaces[key].forEach(function(ipAddress) {
^
TypeError: Cannot call method 'forEach' of null
at getAddress ((path)\GitHub\node_modulesprotractor\node_modules\selenium-webdriver\net\index.js:48:21)
at Object.exports.getLoopbackAddress ((path)\GitHub\node_modulesprotractor\node_modules\selenium-webdriver\net\index.js:78:10)
at (path)\GitHub\node_modulesprotractor\node_modules\selenium-webdriver\remote\index.js:186:17
at (path)\GitHub\node_modulesprotractor\node_modules\selenium-webdriver\lib\goog\base.js:1243:15
at webdriver.promise.ControlFlow.runInNewFrame_ ((path)\GitHub\node_modulesprotractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:1531:20)
at notify ((path)\GitHub\node_modulesprotractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:354:12)
at then ((path)\GitHub\node_modulesprotractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:406:7)
at Object.webdriver.promise.when ((path)\GitHub\node_modulesprotractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:631:18)
at (path)\GitHub\node_modulesprotractor\node_modules\selenium-webdriver\remote\index.js:172:20
at (path)\GitHub\node_modulesprotractor\node_modules\selenium-webdriver\lib\goog\base.js:1243:15
==== async task ====
WebDriver.createSession()
at Function.webdriver.WebDriver.acquireSession_ ((path)\GitHub\node_modulesprotractor\node_modules\selenium-webdriver\lib\webdriver\webdriver.js:131:49)
at Function.webdriver.WebDriver.createSession ((path)\GitHub\node_modulesprotractor\node_modules\selenium-webdriver\lib\webdriver\webdriver.js:111:30)
at Object.createDriver ((path)\GitHub\node_modulesprotractor\node_modules\selenium-webdriver\chrome.js:460:30)
at ChromeDriverProvider.getDriver ((path)\GitHub\node_modulesprotractor\lib\driverProviders\chrome.js:67:27)
at (path)\GitHub\node_modulesprotractor\lib\runner.js:207:35
at _fulfilled ((path)\GitHub\node_modulesprotractor\node_modules\q\q.js:797:54)
at self.promiseDispatch.done ((path)\GitHub\node_modulesprotractor\node_modules\q\q.js:826:30)
at Promise.promise.promiseDispatch ((path)\GitHub\node_modulesprotractor\node_modules\q\q.js:759:13)
at (path)\GitHub\node_modulesprotractor\node_modules\q\q.js:525:49

Please just npm install the latest version of protractor

Just a small side note, if you are running protractor with grunt, the selenium jar must be updated in the grunt-protractor-runner dir.

So the command is:

 ./node_modules/grunt-protractor-runner/node_modules/protractor/bin/webdriver-manager update

I was first updating it at: ./node_modules/protractor/ and that would only work when you run protractor from command line.

I post this because others may find it useful.

Thanks @mulld, running webdriver-manager update worked for me.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

davidkarlsen picture davidkarlsen  ยท  3Comments

koshkarov picture koshkarov  ยท  3Comments

amedvedjev picture amedvedjev  ยท  3Comments

gamecheck80 picture gamecheck80  ยท  3Comments

jmcollin78 picture jmcollin78  ยท  3Comments