当我转到命令提示符并键入chromedriver -v时:
ChromeDriver 79.0.3945.36 (3582db32b33893869b8c1339e8f4d9ed1816f143-refs/branch-heads/3945@{#614})
但是当我尝试运行这段代码时:
from selenium import webdriver
class InstaBot:
def __init__(self):
self.driver=webdriver.Chrome()
self.driver.get("www.instagram.com")
InstaBot()
它给了我这样的错误: 提高exception_class(消息、屏幕、堆栈跟踪(
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 80
为什么会发生这种情况,我试图去除硒以及Chrome驱动程序 并重新安装版本 79.0.3945,但是当我运行它时,它显示这只能在版本 80 上运行 我的Chrome版本是79.0.3945,这是最新的,而版本80 Chrome是Chrome beta
此错误消息...
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 80
。意味着ChromeDriver v80.0无法启动/生成新的浏览上下文,即Chrome 浏览器会话。
您的主要问题是您使用的二进制文件版本之间的不兼容,如下所示:
您提到了使用 chromedriver=- 79.0.3945.36,chromedriver
- =79.0的发行说明明确提到了以下内容:
支持Chrome v79
- 大概您使用的是chrome v79.0浏览器。
因此,很明显,您的系统中存在chromedriver=80.0,它也存在于系统
PATH
变量中,并在您执行以下操作时调用:self.driver=webdriver.Chrome()
溶液
有两种解决方案:
- 您可以将chrome升级到Chrome 版本 80.0级别。(根据 ChromeDriver v80.0 发行说明(
或者,您可以使用chromedriver v79.0二进制位置覆盖默认的chromedriver v80.0二进制位置,如下所示:
from selenium import webdriver driver = webdriver.Chrome(executable_path=r'C:pathtochromedriver.exe') driver.get('http://google.com/')
您可以在 Ubuntu 中找到详细的讨论: selenium.common.exceptions: 会话未创建: 此版本的 ChromeDriver 仅支持 Chrome 版本 79
其他注意事项
确保:
- 通过IDE清理项目工作中心,并仅使用所需的依赖项重新生成项目。
- 如果基本 Web 客户端版本太旧,请将其卸载并安装最新的 GA 和已发布版本的Web 客户端。
- 重新启动系统。
- 以非 root用户身份执行
@Test
。 - 始终在方法中调用
driver.quit()
tearDown(){}
以正常关闭和销毁WebDriver和Web 客户端实例。
参考
您可以在以下位置找到相关的详细讨论:
- 如何使用特定版本的ChromeDriver,而Chrome浏览器通过Python selenium自动更新
在项目中使用 Bonigarcia 插件。之后,它将自行管理所有驱动程序。它读取chrome版本并相应地实例化驱动程序。
如需帮助,请关注我的帖子: https://www.linkedin.com/pulse/webdrivermanager-bonigarcia-rohan-ravi-yadav/
或原始 git 链接/帖子 https://github.com/bonigarcia/webdrivermanager
如果需要任何帮助,请告诉我