SessionNotCreatedError:会话未创建:此版本的ChromeDriver仅支持Chrome版本97当前



我正试图启动一个selenium webdriver实例,但我收到了以下错误:

SessionNotCreatedError: session not created: This version of ChromeDriver only supports Chrome version 97 Current browser version is 100.0.4896.75 with binary path *path here*

我已经尝试过使用chromium 98,它有效,但在版本100中发现了一个新的漏洞,我想更新

在mac M1上,我收到以下错误:

Selenium::WebDriver::Error::SessionNotCreatedError:
session not created: This version of ChromeDriver only supports Chrome version 103
Current browser version is 105.0.5195.125 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
(Driver info: chromedriver=103.0.5060.134 (8ec6fce403b3feb0869b0732eda8bd95011d333c-refs/branch-heads/5060@{#1262}),platform=Mac OS X 12.5.1 arm64)

我只是简单地使用brew升级了chromedriver,它为我解决了这个问题。

brew upgrade chromeDriver

此错误消息。。。

SessionNotCreatedError: session not created: This version of ChromeDriver only supports Chrome version 97 Current browser version is 100.0.4896.75 with binary path...

意味着ChromeDriver无法启动/生成新的浏览上下文,即谷歌chrome会话。

您的主要问题是您使用的二进制文件版本之间存在不兼容性,如下所示:

  • 您正在使用铬=100.0.4896.75
  • 您正在使用chromedriver=97.0
  • chromedriver=97.0的发行说明明确提到以下内容:

支持Chrome 97版

因此chromedriver=97.0chrome=100.4896.75之间存在明显的不匹配


解决方案

确保:

  • ChromeDriver更新为ChromeDriverv100.0.4896.60级别,与chrome=100.4896.75匹配

如果这对其他人有帮助,yum-install chromium安装了chromium版本102,而npm install-g chromedriver则安装了版本103,该版本需要chromium版本103。

我确信回滚到旧版本并不是最好的解决方案,但对我来说,安装chromedriver的补充版本可以在我的系统上运行。要安装chromedriver的旧版本,该版本将与通过百胜安装的chrome版本保持一致,我首先来到这里https://chromedriver.chromium.org/downloads并复制了102的版本号(在本例中为102.0505.61)

然后,安装">correct";chromedriver版本是通过运行CHROMEDRIVER_VERSION=102.0.5005.61 npm install -g chromedriver

如果Chrome浏览器版本和ChromeDriver版本都同步,那么也许你应该从你的项目调用它的目录中寻找,这意味着可能有其他目录正在执行ChromeDrive,并且其版本与浏览器不兼容。

在我的案例中,我的VS代码是从项目的node_modules/.bin/ChromeDriver目录中获取ChromeDrive的,所以我用最新的替换了它,它起了作用。

对我来说,问题是我通过将chromedriver更新到了最新的chrome版本

执行webdriver-manager update --gecko falsenpm run e2e:update-webdriver

因此,chromedriver版本比chrome浏览器版本更高。为了解决这个差异,我不得不运行:

sudo apt-get update然后sudo apt-get --only-upgrade install google-chrome-stable

希望这能帮助到别人!

遇到了类似的问题。通常,我会通过更改package.json文件中的版本号来解决这个问题,以匹配我的chrome浏览器版本。这一直有效,直到chromedriver v115问世。对于chromedriver v115,即使浏览器版本不匹配,它仍然可以工作。这就是我可以放入我的package.json:

"webdriver:update": "webdriver-manager update --versions.chrome=114.0.5735.248",

而我的浏览器是115.0.5790.170。端到端测试仍然有效。

现在chromedriver v116发布了,我的浏览器更新到了v116.0.5845.96,上面的内容已经不起作用了。我的解决方法是下载chromedive-win64.zip,并将其放入C:\yourproject\node_modules\webdriver-manager\selenium并提取。然后,您将拥有一个Chromedive-win 64文件夹,其中包含chromedrive.exe文件。接下来是更新update-config.json文件,使其指向最新的chromedriver。更新最后这样:

{
"gecko": {
...
},
"chrome": {
"last": "C:\your project\node_modules\webdriver-manager\selenium\chromedriver-win64\chromedriver.exe",
"all": [
"C:\your project\node_modules\webdriver-manager\selenium\chromedriver_83.0.4103.39.exe",
"C:\your project\node_modules\webdriver-manager\selenium\chromedriver_114.0.5735.248.exe",
"C:\your project\node_modules\webdriver-manager\selenium\chromedriver_114.0.5735.16.exe"
]
},
"standalone": {
'''
}
}

在此之后,端到端测试再次发挥作用。

您可以使用version\umain参数,如下所示:

import undetected_chromedriver as uc
driver = uc.Chrome(version_main=116)

(116是我目前安装的chrome主版本)

参见https://github.com/ultrafunkamsterdam/undetected-chromedriver/issues/572

但如果你的浏览器更新了,你应该更改version\umain到新的chrome版本所以我使用这个方法来获得当前的chrome版本,并将其作为version\umain值传递:

  1. 安装Python的Webdriver Manager:pip安装Webdriver Manager

  2. 使用此代码:

    将未检测到的chromedriver导入为uc

    从webdriver_manager.core.os_manager导入OperationSystemManager,ChromeType
    br_ver=OperationSystemManager().get_browser_version_from_os(ChromeType.GOOGLE)
    version_in=int(br_ver.split('.')[0])options=uc。ChromeOptions()
    driver=uc。Chrome(版本主=版本主)

相关内容

  • 没有找到相关文章

最新更新