会话未创建异常:消息:会话未创建:此版本的ChromeDriver仅支持Chrome 81版本。

184
我目前对Robot Framework还不熟悉。我正在使用最新版本的Chrome和Chromedriver,即80版本,但是当我尝试运行测试时,在Pycharm中出现“SessionNotCreatedException: Message:session not created: This version of ChromeDriver only supports Chrome version 81”的提示,但目前只有81的beta版本可用。我已经尝试卸载并重新安装,但是仍然没有作用,有人能帮我解决吗?谢谢!以下是截图: 1 2

为什么不使用版本81?它与版本80不兼容。 - AndiCover
仅有测试版可用,且不支持此功能。 - finlandlearner
1
在Selenium(Angular 8.2.x)中运行E2E测试时出现相同问题(驱动程序信息:chromedriver = 81.0.4044.20(f006328e39a9769596eb506c8841c3004b24e747-refs / branch-heads / 4044 @ {# 244}),platform = Windows NT 10.0.18362 x86_64) 在Object.checkLegacyResponse(.. \ node_modules \ selenium-webdriver \ lib \ error.js: 546:15)处 在parseHttpResponse(.. \ node_modules \ selenium-webdriver \ lib \ http.js: 509:13)处 在.. \ node_modules \ selenium-webdriver \ lib \ http.js: 441:30处 在processTicksAndRejections(internal / process / task_queues.js: 94:5)处 [08:54:47] E / launcher-进程以错误代码100退出 - JWallace
2
在我的情况下,我所要做的就是打开我的普通Chrome浏览器,进入菜单“帮助->关于Google Chrome”,然后它开始更新Chrome到最新版本(我有81并更新到83)。重新启动Chrome,当我重新运行chromedriver时,它就可以工作了。 - User
你只需要简单地更新ChromeDriver即可。我在Medium上写了一篇简单的文章来介绍如何更新ChromeDriver。 - ScottyBlades
这个回答解决了你的问题吗?[错误信息:“'chromedriver'可执行文件需要在路径中可用”] (https://dev59.com/HF0a5IYBdhLWcg3w3L8-) - AncientSwordRage
39个回答


1

我也遇到了类似的问题。我找到了解决方案...下载匹配的chromedriver,将chromedriver放置在/usr/local/bin路径下即可。它有效。


1
我解决这个问题的方法非常简单,我检查了我的Chrome版本,发现我的PATH变量中有一个较旧的chromedriver,所以我下载了与我的浏览器匹配的chromedriver版本,并替换了PATH中的旧版本。因此,当webdriver模块在我的PATH中查找chromedriver时,它会找到匹配的版本。

1
我通过运行Firefox(geckodriver)而不是Chrome来解决了这个问题:
rsDriver(browser = "firefox")

作为 Firefox 用户,我之前不知道这是可能的,这是一个很棒的替代解决方案。 - Hashim Aziz

1

对于 Laravel Dusk

对于在 Chrome/Chromium 版本114之后运行 Laravel Dusk 遇到此问题的任何人来说,这很可能是由于Google更改了上游URL引起的。

特别针对 Laravel Dusk,这个问题似乎已经在这个 这里的Dusk问题中得到修复,所以从理论上讲,为了正确修复这个问题,只需要执行 composer require laravel/dusk --with-all-dependencies,但至少在我的情况下,这将会更新许多依赖项,并且很有可能破坏我的应用程序。我已经在该问题上询问了对于一个遗留的 Laravel 应用程序(我这里是 Laravel 8)应采取的最佳措施,但与此同时:降级 Chrome/Chromium 浏览器和 Chrome 驱动至 v114 应该是一个足够好的解决方法

这说起来容易做起来难,在 GitHub Actions 上花了我一整天的时间才成功找到如何实现,在你的工作流文件中添加以下内容应该就足够让你的构建重新运行:

  - name: Downgrade Chrome browser to v114
    uses: browser-actions/setup-chrome@v1
    with:
      chrome-version: 1134343 # Last commit number for Chrome v114
    id: setup-chrome
  - run: sudo ln -fs ${{ steps.setup-chrome.outputs.chrome-path }} /usr/bin/google-chrome
  - name: Downgrade Chrome driver to v114
    run: php artisan dusk:chrome-driver `/usr/bin/google-chrome --version | cut -d " " -f3 | cut -d "." -f1`

0

对于Mac用户来说,这是解决问题的最佳方法, 下载chromedriver, 然后将该chromedriver粘贴到此目录中

/usr/local/bin

如果您找不到此目录,则可以从Finder中单击“前往”,然后选择“计算机”,接着按下Command+Shift+.(这将显示Mac中的隐藏文件),然后您肯定会轻松地看到这些目录。

0

我所采取的步骤使其正常工作

  1. 检查您当前的Chrome版本,例如81
  2. 转到工具/nuget软件包管理器
  3. 选择Selenium Chrome驱动程序
  4. 升级/降级到与您相同的Chrome版本。

重新启动应用程序即可。


0

0

当Chrome驱动程序没有正确关闭时,我遇到了这个错误。例如,如果我尝试查找某些内容并单击它,但它不存在,则驱动程序会抛出异常并在那里结束线程(我没有关闭驱动程序)。

因此,当我稍后再次运行相同的方法并需要重新初始化驱动程序时,驱动程序未初始化并抛出了异常。

我的解决方法很简单,就是将Selenium任务包装在try catch中,并正确关闭驱动程序。


0

这与Python无关,但对于C#或dotnet用户,您可以在nuget包中指定驱动程序版本。例如,Selenium.WebDriver.ChromeDriver是一个很好的起点。它应该与浏览器版本匹配。在Chrome中,您可以通过访问 chrome://settings/help 来检查版本。

请注意,这也会影响管道代理和其他开发人员计算机上的Chrome版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接