selenium.common.exceptions.SessionNotCreatedException:消息:未创建会话:ChromeDriver

时间:2019-01-22 06:00:13

标签: python-3.x google-chrome selenium-webdriver webdriver selenium-chromedriver

我正在尝试使用Selenium创建一个webcrawler,但是在尝试创建webdriver对象时出现此错误。

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome version must be between 70 and 73
(Driver info: chromedriver=2.45.615291 (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387),platform=Windows NT 6.1.7601 SP1 x86_64)

我下载了chromedriver(2.45)的最新版本,该版本需要Chrome 70-73。我当前的Chrome版本是68.0.3440.106(正式版本)(64位),是最新版本。我尝试下载“较旧的” chrome version(71),然后尝试安装它时,安装程​​序指示我已经安装了较新的版本。

似乎没有以前的Chromedriver版本可以下载,即使该网站说可以。我找不到它们。

我不太了解71版本比68版本如何?

我是否可以使用比68更高的Chrome版本,或者可以与Chrome 68一起使用的chromedriver旧版本?

还有其他建议吗?

这是我要执行的代码:

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
user = 'XXXXXXX'
pwd = 'XXXXXXX'
chromedriver = "...\...\...\chromedriver.exe"
driver = webdriver.Chrome(executable_path=chromedriver) # Error occurs at this line
driver.get("http://www.facebook.com")
assert "Facebook" in driver.title
time.sleep(5) # So i can see something!
elem = driver.find_element_by_id("email")
elem.send_keys(user)
time.sleep(5) # So i can see something!
elem = driver.find_element_by_id("pass")
elem.send_keys(pwd)
time.sleep(5) # So i can see something!
elem.send_keys(Keys.RETURN)
driver.close()

12 个答案:

答案 0 :(得分:5)

对我来说,升级驱动程序可以解决问题。只需运行:

brew cask upgrade chromedriver

,然后尝试再次运行测试。希望对您有帮助!

答案 1 :(得分:4)

此错误消息...

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome version must be between 70 and 73
(Driver info: chromedriver=2.45.615291 (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387),platform=Windows NT 6.1.7601 SP1 x86_64)

...表示 Chrome版本必须在70到73之间

您的主要问题是所使用的二进制文件之间的版本兼容性

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

支持 Chrome v70-72

  • 您正在使用 chrome = 68.0
  • ChromeDriver v2.41的发行说明中明确提到以下内容:
  

支持 Chrome v67-69

因此 ChromeDriver v2.45 Chrome浏览器v68.0

之间存在明显的不匹配

解决方案


替代

以某种方式,我认为您的系统中安装了2个版本的 Chrome 浏览器。如果是这种情况,您需要在程序中提及 Chrome 二进制文件的绝对位置,您可以使用以下解决方案:

  • 代码块:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    options = Options()
    options.binary_location = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"
    driver = webdriver.Chrome(chrome_options=options, executable_path="C:/Utility/BrowserDrivers/chromedriver.exe", )
    driver.get('http://google.com/')
    
  • 您可以在Set chrome browser binary through chromedriver in Python

  • 中找到详细的讨论
  

注意:您可以在Session not created exception: Chrome version must be >= x.y.z when using Selenium Webdriver with Chrome

中找到相关的讨论

答案 2 :(得分:3)

我遇到了同样的问题。我尝试安装降级的Chrome版本(当前稳定版本为74,而所需的驱动程序的chrome版本必须介于70-73之间),但我无法这样做。

我找到了另一种方式。 This link将向您显示哪个版本与您当前的google-chrome兼容(要知道您的版本,该命令为google-chrome --version

This link将指导您如何使用zip文件安装chrome驱动程序。这些命令是:

cd
wget <URL to zip file>
unzip chromedriver_linux64.zip
sudo mv chromedriver /usr/bin/chromedriver
sudo chown root:root /usr/bin/chromedriver
sudo chmod +x /usr/bin/chromedriver

如果错误出现No such file or directory: '/usr/lib/chromium-browser/chromedriver'或相同的错误仍然存​​在

使用路径/usr/lib/chromium-browser/chromedriver而不是/usr/bin/chromedriver重复上述过程

对我来说,google-chrome 74版与ChromeDriver 73版一起使用

答案 3 :(得分:3)

有两种方法可以解决此问题:

1。如果您的Chrome版本未更新->更新

步骤: 1.转到帮助->关于Google Chrome-> Chrome将自动查找更新(将Chrome更新到最新版本)

enter image description here

2。如果您的chrome版本已经是最新版本->那么您需要升级chrome驱动程序版本

以下是链接:http://chromedriver.chromium.org/downloads

enter image description here

答案 4 :(得分:2)

您可以找到旧版的Chrome驱动程序here

我认为从官方渠道以外的来源安装chrome并不是一个好主意,安装chrome可能会引起问题。查看Google更新服务是否正在您的PC中运行。这会自动将chrome版本更新为最新版本。我的服务器运行的是71.0.3578.98版(正式版本)(64位)。

答案 5 :(得分:0)

您的Chrome版本很旧。版本68不是最新版本。对于所有操作系统,Chrome当前的版本为71+。请查看列表here

或者,this是下载旧版本的链接。

答案 6 :(得分:0)

摘要:

  • 找到您的Chrome版本(帮助->关于Google Chrome
  • 如果您已有chromedriver版本,请查找该版本。 (对我来说,“ chromedriver.exe -v”为我提供了Windows环境下的版本。)
  • 访问Chrome浏览器官方网页(http://chromedriver.chromium.org/downloads
  • 从上述下载位置下载与您的Chrome浏览器版本匹配的chromedriver。
  • 浏览该下载页面上的发行说明,使其朝页面的下部显示,从而使您可以清楚地了解要针对哪个版本的浏览器使用哪个驱动程序。
  • 您可以将下载的chromedriver二进制文件放在路径环境中。

你去了。祝一切顺利!

答案 7 :(得分:0)

如果您使用的是Chrome 75版,请下载ChromeDriver 75.0.3770.8 如果您使用的是Chrome 74版本,请下载ChromeDriver 74.0.3729.6 对于较旧版本的Chrome,请参阅以下有关支持它的ChromeDriver版本。 http://chromedriver.chromium.org/downloads

答案 8 :(得分:0)

只需从here下载chromedriver扩展2.8或2.9。

解压缩并将其扩展添加到 / usr / local / bin

答案 9 :(得分:0)

由于chromedriver和chrome版本不匹配,我遇到了这个问题。我按照以下步骤解决了问题:

1) First, find out which version of Chrome you are using. My Chrome version was 77.0.3865.90.
2) Take the Chrome version number, remove the last part, and append the result to URL "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_". For example, with Chrome version 77.0.3865.90, you'd get a URL "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_77.0.3865".
3) Use the URL created in the last step to retrieve the version of ChromeDriver to use. For example, the above URL will get your a file containing "77.0.3865.40". (The actual number may change in the future, of course.)
4) I then did :
  webdriverdownloader chrome:77.0.3865.40 on my mac terminal.

此后,您的Chromedriver和Chrome版本必须同步,并且该问题应得到解决。

答案 10 :(得分:0)

您必须将chromedriver版本号与网络浏览器的chrome版本进行匹配, 如果两个版本都匹配,则最好。

  

>   例如 -   1-您的网络浏览器chrome版本为77(用于检查您的网络浏览器chrome版本   获取网络浏览器帮助,然后在“关于Google Chrome浏览器”中找到           您的Web浏览器的chrome版本)。   2-现在从https://chromedriver.chromium.org/downloads在此处下载相同版本的77 chromedriver。   3-使谷歌浏览器为您的默认网络浏览器。   全做完了 。   您的代码可以正常运行。

from selenium import webdriver

driver=webdriver.Chrome("chromedriver.exe")

# Below line of code provide
driver.get('http://python.org')

html_doc=driver.page_source

print("Html code of http://python.org web page :",html_doc)

答案 11 :(得分:0)

如果您最终在这里使用Laravel / Dusk,请尝试:

php artisan dusk:chrome-driver