protractor: Update Protractor to use Latest Chromedriver (Otherwise it can't run against Chrome v65)

Update @IgorSasovets posts the best solution in the thread below:


As you mentioned, chromedriver version which protractor uses for tests executing depends on version in node_modules/protractor. I faced such issue few times and fixed it using

node_modules/protractor/bin/webdriver-manager update command. After that I ran my tests and all worked as expected with latest version of chromedriver.


Feature Request

Fix issue running Protractor in Chrome 65.

Once Chrome updates on your machine to version 65, Protractor will no longer be able to execute tests.

The local solution to this is to go download Chromedriver 2.36 and then point your config files to this - and thus override Protractor’s Chromedriver choice (2.33.x). chromeDriver: './location/of/your/chromedriver.exe'

I could not figure out a more elegant way to update the chromedriver being used by Protractor other than manually overriding it in the config file.

I think this possibly tied to the version of webdriver-manager that lives in your /node-modules/protractor/bin. I tried to update that, but I don’t think you can or it for some reason doesn’t take.

My tests were running fine on Friday 9 March, then a co-worker complained that their tests weren’t working. I asked him what Chrome version he had (65), then I checked mine and it auto-updated from 64 to 65, then mine stopped working as well. But manually using the newest Chromedriver does fix my problems.

Thank you!

Bug report

  • Node Version: 8.4.0
  • Protractor Version: 5.3.0
  • Angular Version: 1.6.9
  • Browser(s): Chrome 65.0.3325.146
  • Operating System and Version: Windows 10

Run any test:

[11:17:32] I/launcher - Running 1 instances of WebDriver
[11:17:32] I/direct - Using ChromeDriver directly...
[11:17:38] E/launcher - Error: WebDriverError: unknown error: call function result missing 'value'
  (Session info: chrome=65.0.3325.146)
  (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.14393 x86_64)
    at Object.checkLegacyResponse (C:\Users\<user>\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\error.js:505:15)
    at parseHttpResponse (C:\Users\<user>\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\http.js:509:13)
    at doSend.then.response (C:\Users\<user>\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\http.js:440:13)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
From: Task: Protractor.get(https://<url.under.test>) - reset url
    at Driver.schedule (C:\Users\<user>\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:816:17)
    at ProtractorBrowser.executeScriptWithDescription (C:\Users\<user>\AppData\Roaming\npm\node_modules\protractor\lib\browser.ts:583:24)
    at driver.controlFlow.execute.then.then.then (C:\Users\<user>\AppData\Roaming\npm\node_modules\protractor\lib\browser.ts:888:23)
    at ManagedPromise.invokeCallback_ (C:\Users\<user>\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:1366:14)
    at TaskQueue.execute_ (C:\Users\<user>\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2970:14)
    at TaskQueue.executeNext_ (C:\Users\<user>\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2953:27)
    at asyncRun (C:\Users\<user>\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2813:27)
    at C:\Users\<user>\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:676:7
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
[11:17:38] E/launcher - Process exited with error code 100

Process finished with exit code 100

About this issue

  • Original URL
  • State: open
  • Created 6 years ago
  • Comments: 16 (3 by maintainers)

Most upvoted comments

I added

chromeDriver: path.join(paths.e2e, '../node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.36'),

to protractor.conf.js in the config object and it works now.

Hi @mthoreso ! As you mentioned, chromedriver version which protractor uses for tests executing depends on version in node_modules/protractor. I faced such issue few times and fixed it using

node_modules/protractor/bin/webdriver-manager update

command. After that I ran my tests and all worked as expected with latest version of chromedriver.

why is this project so very very far behind with browser-versions??? 76 almost half a year old now. You only need to use the lastest selenium-webdriver version to support it or is there more to it?

For me, the following worked:

  1. Install webdriver-manager as direct dependency. (npm install webdriver-manager --save-dev)
  2. Delete the package-lock.json and node_modules folder.
  3. Do a fresh npm install.

Afterward protractor tests should pick up the webdriver-manager version (Note the paths):

[12:22:08] I/file_manager - creating folder C:\Develop\Repos\ngx-vcard\node_modules\webdriver-manager\selenium
[12:22:08] I/config_source - curl -oC:\Develop\Repos\ngx-vcard\node_modules\webdriver-manager\selenium\chrome-response.xml https://chromedriver.storage.googleapis.com/
[12:22:08] I/downloader - curl -oC:\Develop\Repos\ngx-vcard\node_modules\webdriver-manager\selenium/chromedriver_79.0.3945.36.zip https://chromedriver.storage.googleapis.com/79.0.3945.16/chromedriver_win32.zip
[12:22:09] I/update - chromedriver: unzipping chromedriver_79.0.3945.36.zip
10% building 3/3 modules 0 activei 「wds」: Project is running at http://localhost:4200/webpack-dev-server/
i 「wds」: webpack output is served from /
i 「wds」: 404s will fallback to //index.html

I’m having a same issue. How to specify the chromedriver version if we use webdriver_update_specific method?