【问题标题】:Selenium fails because of incompatible chromedriver and google-chrome versions although both are at the same versionSelenium 因 chromedriver 和 google-chrome 版本不兼容而失败,尽管两者版本相同
【发布时间】:2019-09-12 01:18:39
【问题描述】:

我正在尝试使用 Python 3 将 Selenium 与 Google Chrome 一起使用,如下所示:

chromedriver = "/usr/local/bin/chromedriver"
chrome_options = Options()
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--ignore-certificate-errors')
chrome_options.binary_location = '/usr/bin/google-chrome'
browser = webdriver.Chrome(chromedriver, options=chrome_options)

上面的代码给出了错误信息:

selenium.common.exceptions.SessionNotCreatedException:消息: 未创建会话:此版本的 ChromeDriver 仅支持 Chrome 版本 77

chromedrivergoogle-chrome 都是77 版。

$ /usr/local/bin/chromedriver --version
ChromeDriver 77.0.3865.40 (f484704e052e0b556f8030b65b953dce96503217-refs/branch-heads/3865@{#442})

$ /usr/bin/google-chrome --version
Google Chrome 77.0.3865.75

【问题讨论】:

  • Python 版本 3.? 请完整的错误堆栈跟踪。

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


【解决方案1】:

这是用户:797495 留给我的一些快速代码,如果找不到,可以在正确的版本再次将 chromedriver 下载到路径。只需将其添加到代码的开头即可:

curr_dir = os.path.dirname(os.path.abspath(__file__))
chromedriver = "chromedriver.exe"
out = subprocess.getoutput(f"{chromedriver} -v")
if "ChromeDriver" in out:
    print(f"{out} \nChromeDriver exists in path and is executable" )
else:
    url = "https://chromedriver.storage.googleapis.com/72.0.3626.69/chromedriver_win32.zip"
    try:
        r = requests.get(url)
        z = zipfile.ZipFile(io.BytesIO(r.content))
        z.extractall()
        chromedriver =  f"{curr_dir}\chromedriver.exe"
    except Exception as e:
        print(f"Cannot download chromedriver\n {e}")

【讨论】:

    猜你喜欢
    • 2016-09-06
    • 1970-01-01
    • 2017-04-29
    • 2022-08-13
    • 2022-01-19
    • 2022-07-08
    • 2020-09-24
    • 1970-01-01
    相关资源
    最近更新 更多