I'm new comer of Selenium, and I can use selenium with Chromedriver to do basic auto-test now, the code works fine, but the problem is Chrome browser always update automatically at the backend, and code always fail to run after Chrome update. I know I need to download new chromedriver to solve this issue, but I wonder if there's any way to solve this issue without disabling chromebrowser update? tks.
I'm using Windows 10 / Chrome Version 67 / Python 3.6.4 / Selenium 3.12.0
What is a Selenium ChromeDriver? A ChromeDriver is a standalone server or a separate executable that is used by Selenium WebDriver to control Chrome. It is impossible to run Selenium test scripts on the Google Chrome browser without ChromeDriver.
We maintain multiple versions of ChromeDriver. Which version to select depends on the version of Chrome you are using it with. Specifically: ChromeDriver uses the same version number scheme as Chrome.
No, there is no other alternative than updating the ChromeDriver binary versions, while the Chrome Browser keeps on getting updated automatically. Each Chrome Browser is released after certain feature additions, modifications and removals from the existing features.
Each Chrome Browser is released after certain feature additions, modifications and removals from the existing features. To comply with the current set of Browser Features, Chrome Team releases the compatible ChromeDriver binary time to time. These ChromeDriver binaries are capable to interact with the Chrome Browser.
i am using this one library that is working for me .
https://pypi.org/project/chromedriver-autoinstaller/
Project description
chromedriver-autoinstaller Automatically download and install chromedriver that supports the currently installed version of chrome. This installer supports Linux, MacOS and Windows operating systems.
Installation
pip install chromedriver-autoinstaller
Example
from selenium import webdriver
import chromedriver_autoinstaller
chromedriver_autoinstaller.install() # Check if the current version of chromedriver exists
# and if it doesn't exist, download it automatically,
# then add chromedriver to path
driver = webdriver.Chrome()
driver.get("http://www.python.org")
assert "Python" in driver.title
edit. i also use the options like it was commented by @ATJ but for defining chrome's binary_location() the not the CHROMEDRIVER_PATH. actually, one of the things that i like in this extension is not having the need to specify this path, because it already takes care of that. before using it i used to loose time puting the path, searching where it was, puting copies of the driver in the projects folders or system path folders.
I also made a template with this quick code to use selenium, i open new files with that and then continue that is it:
import chromedriver_autoinstaller
from selenium import webdriver
chromedriver_autoinstaller.install()
options = webdriver.ChromeOptions()
options.binary_location = ('C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe')
driver = webdriver.Chrome(options=options)
and also this quick script to run on terminal on 1st time using in a new pc
import os
os.system("pip install selenium ")
os.system("pip install chromedriver_autoinstaller ")
-the actual complete version of mine template(leaving comment is faster and reduce duplicate work, uncommenting makes it more dependence-less)
import chromedriver_autoinstaller
from selenium import webdriver
#from selenium.webdriver.common.keys import Keys
# import os
# # to use when 1st time on the machine and then leave comented
# os.system("pip install selenium ")
# os.system("pip install chromedriver_autoinstaller ")
chromedriver_autoinstaller.install()
options = webdriver.ChromeOptions()
options.headless = False
options.binary_location = ('C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe')
driver = webdriver.Chrome(options=options)
edit. 2 -the actual complete version of mine template with binary loc. well . i just tested the code with the binary_location and it works too. well, dont know wy it was not working before, this locations is the default so, should not change unless the person changed when installing chrome. good thing to revisit it now, i just saved a line from all my future uses of this.
import chromedriver_autoinstaller
from selenium import webdriver
#from selenium.webdriver.common.keys import Keys
# import os
# # to use when 1st time on the machine and then leave comented
# os.system("pip install selenium ")
# os.system("pip install chromedriver_autoinstaller ")
chromedriver_autoinstaller.install()
options = webdriver.ChromeOptions()
options.headless = False
driver = webdriver.Chrome(options=options)
No, there is no other alternative than updating the ChromeDriver binary versions, while the Chrome Browser keeps on getting updated automatically.
Each Chrome Browser is released after certain feature additions, modifications and removals from the existing features. To comply with the current set of Browser Features, Chrome Team releases the compatible ChromeDriver binary time to time. These ChromeDriver binaries are capable to interact with the Chrome Browser. Certain version of a ChromeDriver binary supports a specific range of Chrome Browser versions (some of the recent) as below:
ChromeDriver v84.0.4147.30 (2020-05-28)
Supports Chrome version 84
ChromeDriver v83.0.4103.39 (2020-05-05)
Supports Chrome version 83
ChromeDriver v82 was intensionally skipped.
ChromeDriver v81.0.4044.138 (2020-05-05)
Supports Chrome version 81
ChromeDriver v80.0.3987.106 (2020-02-13)
Supports Chrome version 80
ChromeDriver v79.0.3945.36 (2019-11-18)
Supports Chrome version 79
ChromeDriver v78.0.3904.70 (2019-10-21)
Supports Chrome version 78
ChromeDriver v77.0.3865.40 (2019-08-20)
Supports Chrome version 77
ChromeDriver v76.0.3809.126 (2019-08-20)
Supports Chrome version 76
ChromeDriver v75.0.3770.8 (2019-04-29)
Supports Chrome version 75
ChromeDriver v74.0.3729.6 (2019-03-14)
Supports Chrome version 74
ChromeDriver v73.0.3683.68 (2019-03-06)
Supports Chrome version 73
ChromeDriver v2.46 (2019-02-01)
Supports Chrome v71-73
ChromeDriver v2.45 (2018-12-10)
Supports Chrome v70-72
ChromeDriver v2.44 (2018-11-19)
Supports Chrome v69-71
ChromeDriver v2.43 (2018-10-16)
Supports Chrome v69-71
ChromeDriver v2.42 (2018-09-13)
Supports Chrome v68-70
ChromeDriver v2.41 (2018-07-27)
Supports Chrome v67-69
ChromeDriver v2.40 (2018-06-07)
Supports Chrome v66-68
ChromeDriver v2.39 (2018-05-30)
Supports Chrome v66-68
ChromeDriver v2.38 (2018-04-17)
Supports Chrome v65-67
ChromeDriver v2.37 (2018-03-16)
Supports Chrome v64-66
ChromeDriver v2.36 (2018-03-02)
Supports Chrome v63-65
ChromeDriver v2.35 (2018-01-10)
Supports Chrome v62-64
ChromeDriver v2.34 (2017-12-10)
Supports Chrome v61-63
ChromeDriver v2.33 (2017-10-03)
Supports Chrome v60-62
ChromeDriver v2.32 (2017-08-30)
Supports Chrome v59-61
ChromeDriver v2.31 (2017-07-21)
Supports Chrome v58-60
ChromeDriver v2.30 (2017-06-07)
Supports Chrome v58-60
ChromeDriver v2.29 (2017-04-04)
Supports Chrome v56-58
To keep your script/program interactive with the updated Chrome Browser you have to keep the version of ChromeDriver binary in sync with the Chrome Browser as per the compatibility.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With