unknown error: call function result missing 'value' for Selenium Send Keys even after chromedriver upgrade

I've gotten the same error, please download the last ChromeDriver version and/or update chrome browser version and it will be working fine :)

https://chromedriver.storage.googleapis.com/index.html?path=2.36/



After updating the Google Chrome browser to Version 65.0.3325.146 (Official Build) (64-bit), I'm also encountered with the same error while sending values to the input field, here's the error message...

selenium.common.exceptions.WebDriverException: Message: unknown error: call function result missing 'value'

using Chromedriver 2.32 and Google Chrome 65.0

As I did some research on the same, I found a recent commit on Google chrome v65 changelogs which help me to resolve the issue.

Solution:

  • Update Google Chrome to latest stable version (in my case it's v65 on 9/mar/2018)
  • Download and configure latest chromedriver (v2.36). For configuring chromedriver (on Ubuntu) follow these steps...

    1. Extract the downloaded zip file.
    2. Copy the extracted chromedriver file to /usr/local/bin or to the location where you usually store the executable binaries.
    3. Add the same path (where you place the chromedriver file) to environment variable PATH as

export PATH=$PATH:/usr/local/bin

  1. For testing the installation, restart the terminal and type this command

chromedriver --version

it would show the version of chromedriver that you just installed.

Note: If the chromedriver already installed and configured then just replace the existing driver file and If you don't know where the Chromedriver binaries already stored then try to find the file using following command

 sudo find -H / -type f -iname chromedriver

It is because of the update of chrome browser version from 64.xx to 65.xx

Now you have 2 options to run your tests successfully.

  1. Downgrade your chrome browser to previous version and with the old chromedriver which you have now.

  2. Upgrade your Chromedriver to 2.36 version with the updated Chrome browser.

    visit https://chromedriver.storage.googleapis.com/index.html?path=2.36 and download the new chromedriver.

Option 2 is better.


Replace your ChromeDriver.exe with latest version.. Same can be downloaded from Google easily.

Also its better to get it done automatically by using webDriver manager as explained below - 1. Add Mvn dependency to your project POM:

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>${webdrivermanager.version}</version>
    <scope>test</scope>
</dependency>
  1. Now in your Browser instantiation class instead of using traditional way to create driver i.e. by using System.setProperty(See belwo)...

    System.setProperty("webdriver.chrome.driver","src/test/resources/drivers/chromedriver.exe");

Use below approach:

WebDriverManager.chromedriver().setup();
webDriver = new ChromeDriver(chromeOptions);

And that's all, you are done!

Use below links for your reference- What is Browser Binary Manager how to use it for Selenium

or chkout git project for same- https://github.com/bonigarcia/webdrivermanager#webdrivermanager-as-java-dependency


Need to update chromedriver : In console, run: chromedriver-update 2.36