【问题标题】:How to resolve chromedriver_binary and Chrome versions not matching?如何解决 chromedriver_binary 和 Chrome 版本不匹配的问题?
【发布时间】:2021-08-24 02:15:27
【问题描述】:

我正在学习为财务执行网络抓取。

我正在学习教程。我需要导入 selenium 和 chromedriver_binary。我正在使用 Windows 10、conda 和 Spyder 5。

我已经下载了最新版本的 Chrome,即版本 92.0.4515.159。我还安装到我的 conda 环境 chromedriver-binary 版本 93。

我了解 chrome 和 chromedriver 都需要在版本级别匹配,例如 92-92。但是,我还不能下载 Chrome 93,除非 beta 版本没问题。我不确定。

我访问了 chromium 下载页面,我在该页面下载了 chromedriver 版本 92。我还在 C: 驱动器中创建了一个 PATH 变量作为 C:\bin 来存储我的 chromedriver.exe。我通过打开 cmd 提示符并运行 chromedriver.exe -v

验证了这是否有效

当然,那么,我在 Spyder 中的错误信息是: SessionNotCreatedException:会话未创建:此版本的 ChromeDriver 仅支持 Chrome 版本 93 当前浏览器版本为 92.0.4515.159,二进制路径为 C:\Program Files\Google\Chrome\Application\chrome.exe

有人可以帮我解决这个问题吗?谢谢! =)

【问题讨论】:

  • 您是否尝试传递此参数driver = webdriver.Chrome("path_to_92_version_chromedriver")
  • 不,我没有。但我刚刚做了,但失败并显示以下错误消息:WebDriverException: 'chromedriver.exe' 可执行文件需要在 PATH 中。请参阅sites.google.com/a/chromium.org/chromedriver/home 但是!在谷歌搜索您的建议后,我发现通过运行: webdriver.Chrome(executable_path = r'C:/path/to/driver') the little r there 确实解决了问题。你可能知道为什么吗?非常感谢您的建议^___^
  • Raw String r'' 忽略字符串文字。您可能在 executable_path 中使用了反斜杠,因此使用原始字符串对您有用。与我试图传达的完全一样。所以看起来我的建议对你有帮助?你会接受它作为答案吗?

标签: python selenium selenium-chromedriver


【解决方案1】:

您可以通过在调用 Chrome 时简单地传递 executable_path 来避免使用 PATH 变量。

driver = webdriver.Chrome("/path/to/chromedriver")

详细阅读请参考Webdrive Documentation

【讨论】:

    【解决方案2】:

    我认为chromedriver 版本不能高于浏览器版本,因此解决此问题的唯一方法是download 并安装兼容的chromedriver 版本(在这种情况下等于) 到您的浏览器版本。然后,如前所述,在创建驱动程序时使用executable_path,如下所示:driver = webdriver.Chrome(executable_path = "/path/to/chromedriver") 作为参数。要确定您使用的是哪个chromedriver 版本,您可以像这样检查它:/path/to/chromedriver --version

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-10
      • 2019-01-06
      • 2013-07-08
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 2021-12-26
      相关资源
      最近更新 更多