SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 81

SeleniumGoogle ChromeSelenium WebdriverSelenium ChromedriverRobotframework

Selenium Problem Overview


I am currently new to robot framework.I am currently using latest window version of chrome and chromedriver which is 80 but when i try to run the test it gives the message "SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 81" in pycharm but currently beta version of 81 is only available. I have tried uninstalling everthing and reinstalling it again but nothing works can anyone help me with this.Thank you!

Screenshots below: 1

2

Selenium Solutions


Solution 1 - Selenium

I solved these kinds of problems using the webdrive manager.

You can automatically use the correct chromedriver by using the webdrive-manager. Install the webdrive-manager:

pip install webdriver-manager

Then use the driver in python as follows

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())

This answer is taken from https://stackoverflow.com/a/52878725/10741023

Solution 2 - Selenium

Do below steps :

  1. Check the version of chrome browser.

  2. download chromedriver of same version from https://sites.google.com/chromium.org/driver/home

  3. Give correct path in the pycharm and run the code.

Solution 3 - Selenium

I got the same message on MacOS:

> "selenium.common.exceptions.SessionNotCreatedException: Message: > session not created: This version of ChromeDriver only supports Chrome > version 81"

Then I run this command, it's gone:

# Homebrew 3
brew upgrade chromedriver

# Homebrew < 3
brew cask upgrade chromedriver

Solution 4 - Selenium

This error message...

SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 81

...implies that the ChromeDriver v81 was unable to initiate/spawn a new Browsing Context i.e. Chrome Browser where is version is other then 81.0.


Your main issue is the incompatibility between the version of the binaries you are using as follows:

  • You mentioned about using chromedriver=80 and chrome=80 but somehow while your program execution ChromeDriver v 81.0 is used.

  • So, it's quite evident your have chromedriver=81.0 present within your system and is present within the system PATH variable which gets invoked while you:

      driver = webdriver.Chrome()
    

Solution

There are two solutions:

  • Either you upgrade chrome to Chrome Version 81.0 level. (as per ChromeDriver v81.0 release notes)

  • Or you can override the default chromedriver v81.0 binary location with chromedriver v80.0 binary location as follows:

      from selenium import webdriver
    
      driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe')
      driver.get('http://google.com/')
    

Reference

You can find a couple of relevant discussions in:

Solution 5 - Selenium

Go to your Chrome settings -> About Chrome -> Check version and download chromedriver from Below according to your Chrome version https://chromedriver.chromium.org/downloads

Solution 6 - Selenium

Chrome version is updating everyday so you need use exact chromedriver version according chrome version https://chromedriver.chromium.org/downloads in this website you can download chromedrivers

Solution 7 - Selenium

  1. First of all check latest Chrome version (This is your browser Chrome version) link

  2. Download same version of Chrome Web Driver from this link

Do not download latest Chrome Web Driver if it does not match your Chrome Browser version.

Note: When I write this message, latest Chrome Browser version is 84 but latest Chrome Driver version is 85. I am using Chrome Driver version 84 so that Chrome Driver and Chrome Browser versions are the same.

Solution 8 - Selenium

this works for me

brew cask upgrade chromedriver

Above is deprecated on MacOs, use: brew install chromedriver (if not already installed) brew upgrade chromedriver

Solution 9 - Selenium

The solution (at least on OSX) is:

  1. Download the latest chromedriver file.
  2. Unzip the downloaded file.
  3. Search the location of the old chromedriver file on your computer and replace it with the new chromedriver file.
  4. Right-click the chromedriver file and click open. Do not double click as Mac will not open it the proper way.
  5. Once the file runs for the first time, you can close it and the update will have taken place.

Solution 10 - Selenium

Your Chrome Driver version needs to match your Chrome Browser version

  1. Get you Chrome Browser version, by typing chrome://version

enter image description here

  1. Download Chrome Driver version that matches you Chrome Browser version, form this website https://chromedriver.chromium.org/downloads

Solution 11 - Selenium

If you are getting this error when you run stuffs on automated cluster and you are downloading the stable version of the google chrome every time then you can use the below shell script to download the compatible version of the chrome driver dynamically every time even if the stable version of the chrome gets updated.

%sh
#downloading compatible chrome driver version
#getting the current chrome browser version
**chromeVersion=$(google-chrome --product-version)**
#getting the major version value from the full version
**chromeMajorVersion=${chromeVersion%%.*}**
# setting the base url for getting the release url for the chrome driver
**baseDriverLatestReleaseURL=https://chromedriver.storage.googleapis.com/LATEST_RELEASE_**
#creating the latest release driver url based on the major version of the chrome
**latestDriverReleaseURL=$baseDriverLatestReleaseURL$chromeMajorVersion**
**echo $latestDriverReleaseURL**
#file name of the file that gets downloaded which would contain the full version of the chrome driver to download
**latestDriverVersionFileName="LATEST_RELEASE_"$chromeMajorVersion**
#downloading the file that would contain the full release version compatible with the major release of the chrome browser version
**wget $latestDriverReleaseURL** 
#reading the file to get the version of the chrome driver that we should download
**latestFullDriverVersion=$(cat $latestDriverVersionFileName)**
**echo $latestFullDriverVersion**
#creating the final URL by passing the compatible version of the chrome driver that we should download
**finalURL="https://chromedriver.storage.googleapis.com/"$latestFullDriverVersion"/chromedriver_linux64.zip"**
**echo $finalURL**
**wget $finalURL**

I was able to get the compatible version of chrome browser and chrome driver using the above approach when running scheduled job on the databricks environment and it worked like a charm without any issues.

Hope it helps others in one way or other.

Solution 12 - Selenium

The case when your Chrome is in the middle of its update also causes this exception. In my case chromedriver was already updated, while the chrome itself was v81 instead of v83.

Solution 13 - Selenium

Solution 14 - Selenium

I too had a similar problem. And I've got a solution .. Download the matching chromedriver, and place the chromedriver under the /usr/local/bin path. It works.

Solution 15 - Selenium

The way I solved this issue was quite simple, I checked my chrome version and I had an older chromedriver in my PATH variable, so I downloaded the chromedriver version that matched my browser and replaced the old one in the PATH, so when the webdriver module looked for a chromedriver in my PATH, it would find the matching version

Solution 16 - Selenium

I had already been running a local server at the same port the session wanted to run on, and this caused the error. Shutting down that local server fixed this for me.

Solution 17 - Selenium

You need to install webdriver manager. Make sure webdriver manager it is also updated.

If you use npm:

npm install -g webdriver-manager

webdriver-manager update

Solution 18 - Selenium

If you're getting this error in Visual Studio 2019 and using Selenium.WebDriver.ChromeDriver by jsakamoto, check the version you're referencing in the packages.config file.

  <package id="Selenium.WebDriver.ChromeDriver" version="89.0.4389.2300" targetFramework="net45" />

Update your NuGet package to the appropriate version and resolve the issue.

Solution 19 - Selenium

What worked for me is this command:

pip install chromedriver-binary==your_chrome_version

This will uninstall the current chrome-driver that you have installed and will install a chrome-driver that matches your chrome version.

Solution 20 - Selenium

It didn't feel like folks were answering the issue here which is: being on the latest version of beta Chrome/Chromium and not seeing the matching chromedriver version

For example, currently as of writing this, Chromium for Mac is Version 86.0.4190.0 (Developer Build) (64-bit) however the latest chromedriver versions listed are

Current stable release: ChromeDriver 83.0.4103.39

Current beta release: ChromeDriver 84.0.4147.30

If you go to https://chromedriver.chromium.org/downloads/version-selection, they provide some pointers on getting a compatible version. One of the last lines near the end mentions trying the ChromeDriver Canary build which leads to how to get it from Chromium browser snapshots.

Of course this goes without saying that using the latest experimental version is likely to have bugs

Solution 21 - Selenium

I faced this problem even after using webdriver manager. I was able to resolve the issue after specifying the exact version of chromedriver that I needed in the webddriver manager.

I was using chrome version 84 and the webdriver manager was installing the latest version of chromedriver, which was 85.0.4183.38.

I made webdriver manager to open the chromedriver version 84.0.4147.30 by writing the following command.

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager(84.0.4147.30).install())

Solution 22 - Selenium

Referring to @dylanvanw answer. You might still out of luck. I found that you might have a different path that you have installed Python. In my case, I have to move Chromedriver.exe from the cache path (C:\Users\Poom.wdm\drivers\chromedriver\win32\84.0.4147.30) to C:\Python38 then it work!

Solution 23 - Selenium

Steps I took to make it work

  1. Check your current Chrome version e.g. 81
  2. Goto tools/nuget package manager
  3. Select selenium chrome driver
  4. upgrade/downgrade to the same Chrome-version you have.

Restarting the application should work.

Solution 24 - Selenium

I found a workaround to download latest version of ChromeDriver via WebDriverManager You could try something like,

WebDriver driver = null ;
boolean oldVersion = true;
String chromeVersion = "";
try {
    try{
		FileReader reader = new FileReader("chromeVersion.txt") ;
		BufferedReader br = new BufferedReader(reader) ;
		
		String line;
		
		while ((line = br.readLine()) != null){
			chromeVersion = line.trim();
		}
		reader.close();
	} catch (IOException e ) {}
	
	WebDriverManager.chromedriver().version(chromeVersion).setup();
	driver = new ChromeDriver() ;
} catch (Exception e) {
	oldVersion = false;
	String err = e.getMessage() ;
	chromeVersion = err.split("version is")[1].split("with binary path")[0].trim();
	try{
		FileWriter writer = new FileWriter("chromeVersion.txt", true) ;
		writer.write(chromeVersion) ;
		writer.close();
	} catch (IOException er ) {}
}

if (!oldVersion){
	WebDriverManager.chromedriver().version(chromeVersion).setup();
	driver = new ChromeDriver() ;
}

driver.get("https://www.google.com") ;

Solution 25 - Selenium

I got this error when the chrome driver was not closed properly. Eg, if I try to find something and click it and it doesn't exist, the driver throws an exception and the thread ended there ( I did not close the driver ).

So, when I ran the same method again later where I had to reinitialize the driver, the driver didn't initialize and it threw the exception.

My solve was simply to wrap the selenium tasks in a try catch and close the driver properly

Solution 26 - Selenium

It is not python related but for C# or dotnet users you might specify driver version in nuget packages. For instance Selenium.WebDriver.ChromeDriver is a good start point. It should match browser version. In chrome you can check version by accessing

chrome://settings/help

Be informed that it will also affect chrome version on pipeline agents and other developer's computers.

Solution 27 - Selenium

For mac users, this is the best way to solve, Download the chromedriver and then paste that chromedriver in this directory

/usr/local/bin

If this directory is not found to you then from finder click on go then select computer then press command+shift+. (this shows the hidden files in mac) then definitely you will see these directory easily

Solution 28 - Selenium

Find out your current chrome version Go to settings->About chrome Go to URL https://chromedriver.chromium.org/downloads Download and use the compatible version.

Solution 29 - Selenium

There are driver-specific NuGet packages, that copy the driver binaries to your bin folder. For example in my .NET Core project I use the latest stable NuGet from here https://www.nuget.org/packages/Selenium.WebDriver.ChromeDriver/.
Basically the NuGet contains the chromedriver.exe and copies it every time to your assembly folder (\bin\Debug\netcoreapp3.1 in my case). This is the line I have in my project:

"<PackageReference Include="Selenium.WebDriver.ChromeDriver" Version="*" />"

You can add it using:

dotnet add package Selenium.WebDriver.ChromeDriver --version *

When I first added this reference, I saw a warning for this particular package, but it disappeared after I closed and reopened my Visual Studio 2019.
The star means the latest (highest number) stable package will be used as explained here.
Of course you can install the latest version manually (without the wildcard, but selecting a specific version), and then on each 2 major Chrome versions to update the NuGet package reference so that is matches your Chrome version. (87 chromedriver works with 87 and 88 Chrome, but not with 89). Then the driver is instantiated with this lines:

var driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

This approach removes the need to specify concrete path to chromedriver.exe that will have to be updated.

Reference:
https://www.automatetheplanet.com/webdriver-net50/

Solution 30 - Selenium

I resolved this issue by simply running Firefox (geckodriver) instead of Chrome:

rsDriver(browser = "firefox")

Solution 31 - Selenium

I got this error after a recent chrome upgrade, and also I recently updated my Mac to Big Sur. Seems cask is not part of brew command, need to use it separately.

brew install --cask chromedriver

Solution 32 - Selenium

you just need to uninstall or delete protractor from node_module and reinstall it.

npm uninstall protractor
npm install protractor

Solution 33 - Selenium

You can handle this exception

from selenium.common.exceptions import SessionNotCreatedException

Add this function

def update_chrome():
try:
    print("Updating chrome driver")
    download_chrome = "wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb"
    unpack_chrome = "sudo dpkg -i google-chrome-stable_current_amd64.deb"
    install_chrome = "sudo apt-get -f install"
    
    file_path = os.path.join(os.environ['HOME'], "google-chrome-stable_current_amd64.deb")
    if os.path.isfile(file_path):
        print("{} found\nremoving {}".format(file_path, file_path))
        os.remove(file_path)
    else:
        print("File does not exist {}".format(file_path))
    
    old_chrome_ver = os.popen("/usr/bin/google-chrome --version").read().strip('Google Chrome ').strip().split(".")[0]
    print("Current Chrome version: {}".format(old_chrome_ver))
    
    os.system(command=download_chrome)
    sleep(2)
    os.system(command=unpack_chrome)
    sleep(5)
    os.system(command=install_chrome)
    
    crnt_chrome_ver = os.popen("/usr/bin/google-chrome --version").read().strip('Google Chrome ').strip().split(".")[0]
    print("Current Chrome version: {}".format(crnt_chrome_ver))
    
    if crnt_chrome_ver == old_chrome_ver:
        print("Chrome version is same as before")
    elif crnt_chrome_ver > old_chrome_ver:
        print("Chrome version is updated from {} to {}".format(old_chrome_ver, crnt_chrome_ver))
    return True    

except Exception as e:
    print("Error while updating chrome: {}".format(e))
    return False

then call this function

try:
    # Your code here
except SessionNotCreatedException as snce:
    print("Session not created: {}".format(snce))
    chrome_update_result = False
    if recurrences == 0:
        chrome_update_result = update_chrome()
    if chrome_update_result:
        recurrences += 1
        print("Chrome updated successfully")
        erisapedia_bot(state, download_dir)
        return True
    else:
        print("Chrome update failed")
        return False

Solution 34 - Selenium

The solution is:-

  • Check out the chrome version of your chrome.From chrome://settings/help
  • Check out which version of ChromeDriver is compatible with your current chrome version from here
  • download the compatible one and replace the existing ChromeDriver with a new ChromeDriver.
  • Now run the code

Solution 35 - Selenium

Simply Update the Chrome browser to the latest version available.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionfinlandlearnerView Question on Stackoverflow
Solution 1 - SeleniumdylanvanwView Answer on Stackoverflow
Solution 2 - Seleniumdanny_huntView Answer on Stackoverflow
Solution 3 - SeleniumTao NhuView Answer on Stackoverflow
Solution 4 - Seleniumundetected SeleniumView Answer on Stackoverflow
Solution 5 - SeleniumVinay PrajapatiView Answer on Stackoverflow
Solution 6 - SeleniumJustin LambertView Answer on Stackoverflow
Solution 7 - SeleniumTeachMeJavaView Answer on Stackoverflow
Solution 8 - Seleniumsurender palView Answer on Stackoverflow
Solution 9 - SeleniumMauroView Answer on Stackoverflow
Solution 10 - SeleniumASAD HAMEEDView Answer on Stackoverflow
Solution 11 - SeleniumNikunj KakadiyaView Answer on Stackoverflow
Solution 12 - SeleniumIlya YevlampievView Answer on Stackoverflow
Solution 13 - SeleniumTadejView Answer on Stackoverflow
Solution 14 - Seleniumrajendra dvg devadigaView Answer on Stackoverflow
Solution 15 - SeleniumFabioDavidFView Answer on Stackoverflow
Solution 16 - SeleniumCodeBikerView Answer on Stackoverflow
Solution 17 - SeleniumMaria AvramescuView Answer on Stackoverflow
Solution 18 - SeleniumwonsterView Answer on Stackoverflow
Solution 19 - SeleniumAdin VaduvaView Answer on Stackoverflow
Solution 20 - SeleniumphwdView Answer on Stackoverflow
Solution 21 - SeleniumNavaneeth SView Answer on Stackoverflow
Solution 22 - SeleniumPoom LaupattarakasemView Answer on Stackoverflow
Solution 23 - SeleniumMario FavereView Answer on Stackoverflow
Solution 24 - SeleniumgamedevshiriousView Answer on Stackoverflow
Solution 25 - SeleniumNischit PradhanView Answer on Stackoverflow
Solution 26 - SeleniumJ.WincewiczView Answer on Stackoverflow
Solution 27 - SeleniumMayur GuptaView Answer on Stackoverflow
Solution 28 - SeleniumAnson Alexander CardozView Answer on Stackoverflow
Solution 29 - SeleniumK. B.View Answer on Stackoverflow
Solution 30 - SeleniumTripartioView Answer on Stackoverflow
Solution 31 - SeleniumLuxView Answer on Stackoverflow
Solution 32 - SeleniumprashuView Answer on Stackoverflow
Solution 33 - SeleniumtheansaricodeView Answer on Stackoverflow
Solution 34 - SeleniumSaurabhView Answer on Stackoverflow
Solution 35 - SeleniumNithya View Answer on Stackoverflow