问题
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!
回答1:
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.
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()
withintearDown(){}
method to close & destroy the WebDriver and Web Client instances gracefully.
回答2:
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.
来源:https://stackoverflow.com/questions/62155465/sessionnotcreatedexception-this-version-of-chromedriver-only-supports-chrome-ve