我在Windows 7,Selenium,chromedriver 84版上使用python 3 (最新)来自动执行我的Chrome浏览器。
我正在使用此脚本:
from selenium import webdriver
#import chromedriver_binary # Adds chromedriver binary to path
driver = webdriver.Chrome()
driver.get("http://www.python.org")
运行该错误总是我得到的。
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
我的ChromeDriver在路径中。另外我还使用了其他版本的chromedriver,但是我无法导航到网站!
答案 0 :(得分:4)
您的ChromeDriver版本和已安装的Chrome版本需要匹配。您正在使用Chrome version 84的ChromeDriver,在回答此问题时,它是Chrome(非稳定版)的Beta版;您可能没有使用它。您可能正在使用版本83。
检查您的Chrome版本(帮助->关于),然后找到正确的ChromeDriver release。您可以改用webdriver-manager
来为您处理。
答案 1 :(得分:2)
此错误消息...
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 84
...表示 ChromeDriver 无法启动/产生新的浏览上下文,即 Chrome浏览器会话。
您的主要问题是所使用的二进制版本之间的不兼容性,如下所示:
支持 Chrome 84版本
因此 ChromeDriver v84 与 Chrome浏览器v83
之间显然不匹配有两个(2)解决方案。
另外还要确保:
@Test
。driver.quit()
方法内调用tearDown(){}
,以优雅地关闭和销毁 WebDriver 和 Web Client 实例。答案 2 :(得分:1)
我们可以自动执行下载二进制文件和配置路径的任务。
我们不必担心浏览器版本或二进制版本
这可以通过使用webdriver-manager
来完成pip install webdriver-manager
现在问题中的上述代码将与以下更改一起使用,
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
同样可以用来设置Firefox,Edge和二进制文件。