Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SessionNotCreatedException: This version of ChromeDriver only supports Chrome version 84 using ChromeDriver and Chrome through Selenium and Python

I am using python 3 on windows 7, selenium, chromedriver version 84 (latest) to automate my chrome browser.

I am using this script:

from selenium import webdriver
#import chromedriver_binary  # Adds chromedriver binary to path

driver = webdriver.Chrome()
driver.get("http://www.python.org")

and I always get this error upon running it.

Traceback (most recent call last):
  File "D:\Huzefa\Desktop\zzzzzz.py", line 4, in <module>
    driver = webdriver.Chrome()
  File "C:\Users\Huzefa\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 81, in __init__
    desired_capabilities=desired_capabilities)
  File "C:\Users\Huzefa\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "C:\Users\Huzefa\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "C:\Users\Huzefa\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\Huzefa\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 84

My ChromeDriver is in path. Also i have used other versions of chromedriver but i am not able to navigate to a website!

like image 917
huzefausama Avatar asked Jun 02 '20 15:06

huzefausama


People also ask

Which version of Selenium is compatible with ChromeDriver?

ChromeDriver is only compatible with Chrome version 12.0. 712.0 or newer. If you need to test an older version of Chrome, use Selenium RC and a Selenium-backed WebDriver instance.

What is ChromeDriver Python?

ChromeDriver is a separate executable that Selenium WebDriver uses to control Chrome. It is maintained by the Chromium team with help from WebDriver contributors.


3 Answers

Your ChromeDriver version and your installed version of Chrome need to match up. You are using ChromeDriver for Chrome version 84, which at the time of this answer, is a beta (non-stable) build of Chrome; you're probably not using it. Likely you're on version 83.

Check your Chrome version (Help -> About) and then find the correct ChromeDriver release. You could instead use webdriver-manager which can handle this for you.

like image 155
Lucan Avatar answered Oct 21 '22 02:10

Lucan


We can automate the task of downloading the binary and configuring the path.

We dont have to worry about the browser version or the binary version

This can be done by using webdriver-manager

pip install webdriver-manager

Now the above code in the question will work simply with the below change,

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

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

The same can be used to set Firefox, Edge, and ie binaries.

Original Answer - https://stackoverflow.com/a/58727916/9928905

like image 5
Rajath Rao - Software Engineer Avatar answered Oct 21 '22 01:10

Rajath Rao - Software Engineer


This error message...

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

...implies that the ChromeDriver was unable to initiate/spawn a new Browsing Context i.e. Chrome Browser session.


Analysis

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

  • You are using chromedriver=84
  • Release Notes of chromedriver=84 clearly mentions:

Supports Chrome version 84

  • Presumably you are using chrome=83 the latest push for Chrome.

Google Chrome is up to date

So there is a clear mismatch between ChromeDriver v84 and the Chrome Browser v83


Solution

There are two (2) solutions to this issue.

  • The easiest solution would be to download and start using chromedriver=83.0.4103.39
  • If you want to continue with chromedriver=84 you have to download the latest Chromium binary from either of the official development repositories:
    • The Chromium Projects
    • chromium.appspot
    • Chrome Canary - Nightly build for developers

Additionally also ensure that:

  • Selenium is upgraded to current levels Version 3.141.59.
  • If your base Web Client version is too old, then uninstall it and install a recent GA and released version of Web Client.
  • Clean your Project Workspace through your IDE and Rebuild your project with required dependencies only.
  • If your base Web Client version is too old, then uninstall it and install a recent GA and released version of Web Client.
  • Take a System Reboot.
  • Execute your @Test as non-root user.
  • Always invoke driver.quit() within tearDown(){} method to close & destroy the WebDriver and Web Client instances gracefully.
like image 4
undetected Selenium Avatar answered Oct 21 '22 03:10

undetected Selenium