解決 Chrome 與 Chromedriver 版本不一致問題的方法

目錄

常見錯誤處理

處理方案:

?1. 自動版本匹配方法

使用 webdriver-manager?庫(推薦)

2. 手動版本管理方法

檢查并匹配版本

?3. 版本兼容性解決方案

使用兼容性表

4. 自動更新策略

定期檢查更新腳本

5. Docker 容器化方案

最佳實踐建議


在 Python 自動化測試中使用 Selenium 時,Chrome 瀏覽器和 Chromedriver 版本不一致是常見問題。

常見錯誤處理

當版本不匹配時,通常會看到類似錯誤:
SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version XX

處理方案:

1. 根據錯誤提示中的版本號下載對應 chromedriver
2. 或使用 `webdriver-manager` 自動解決

以下是幾種有效的解決方案:

?1. 自動版本匹配方法

使用 webdriver-manager?庫(推薦)
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager# 自動下載匹配的 chromedriver
driver = webdriver.Chrome(ChromeDriverManager().install())

優點:
- 自動檢測 Chrome 版本并下載對應的 chromedriver
- 無需手動管理 chromedriver 版本
- 適用于持續集成環境

具體使用見文章ChromeDriverManager的具體用法-CSDN博客

2. 手動版本管理方法

檢查并匹配版本

1. 查看 Chrome 版本:瀏覽器地址欄輸入 `chrome://version/`
2. 下載對應的 chromedriver:https://chromedriver.chromium.org/downloads
3. 指定 chromedriver 路徑:

from selenium import webdriverdriver = webdriver.Chrome(executable_path='/path/to/matching/chromedriver')

?3. 版本兼容性解決方案

使用兼容性表

Chromedriver 通常支持當前 Chrome 版本及前兩個主要版本。參考官方兼容性表:
https://chromedriver.chromium.org/downloads/version-selection

4. 自動更新策略

定期檢查更新腳本
import os
import requests
from selenium import webdriverdef update_chromedriver():chrome_version = os.popen('google-chrome --version').read().split()[-1]major_version = chrome_version.split('.')[0]# 獲取最新 chromedriver 版本latest_url = f"https://chromedriver.storage.googleapis.com/LATEST_RELEASE_{major_version}"latest_version = requests.get(latest_url).text# 下載邏輯...# 替換舊版本...update_chromedriver()
driver = webdriver.Chrome()

5. Docker 容器化方案

使用預配置版本的 Chrome 和 Chromedriver 的 Docker 鏡像:

FROM selenium/standalone-chrome

最佳實踐建議

1. 鎖定版本:在項目中記錄明確的 Chrome 和 chromedriver 版本
2.CI/CD 配置:在持續集成環境中預裝指定版本
3. 版本檢查:在測試開始時添加版本驗證邏輯
4. 錯誤處理:捕獲版本不匹配異常并提供清晰提示

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/904496.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/904496.shtml
英文地址,請注明出處:http://en.pswp.cn/news/904496.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【強化學習】強化學習算法 - 多臂老虎機問題

1、環境/問題介紹 概述:多臂老虎機問題是指:智能體在有限的試驗回合 𝑇 內,從 𝐾 臺具有未知獎賞分布的“老虎機”中反復選擇一個臂(即拉桿),每次拉桿后獲得隨機獎勵,目…

pcie協議復位

pcie協議復位共有4中情況;cold reset;warm reset;hot reset;function level reset; 分類: 依據spec 6.6: Conventional reset(傳統復位):cold,…

Redis--哈希類型

目錄 一、Hash 哈希 1.2 常用命令 1.2.1 HSET 1.2.2 HGET 1.2.3 HEXISTS 1.2.4 HDEL 1.2.5 HKEYS 1.2.6 HVALS 1.2.7 HGETALL 1.2.8 HMGET 1.2.9 HLEN 1.2.10 HSETNX 1.2.11 HINCRBY 1.2.12 HINCRBYFLOAT 1.3 內部編碼 一、Hash 哈希 幾乎所有的主流編程語言都提…

華為安全認證好還是數通認證好?

在華為認證體系中,安全認證 與數通認證 (數據通信)是兩個熱門方向,分別面向網絡安全與網絡架構領域。 安全和數通的技術難度對比 市場需求 安全認證:隨著網絡安全形勢日益嚴峻,企業對網絡安全的重視程度不…

Nacos源碼—5.Nacos配置中心實現分析二

大綱 1.關于Nacos配置中心的幾個問題 2.Nacos如何整合SpringBoot讀取遠程配置 3.Nacos加載讀取遠程配置數據的源碼分析 4.客戶端如何感知遠程配置數據的變更 5.集群架構下節點間如何同步配置數據 4.客戶端如何感知遠程配置數據的變更 (1)ConfigService對象使用介紹 (2)客…

電力MOSFET的專用集成驅動電路IR2233

IR2233是IR2133/IR2233/IR2235 系列驅動芯片中的一種,是專為高電壓、高速度的電力MOSFET和IGBT驅動而設計的。該系列驅動芯片內部集成了互相獨立的三組板橋驅動電路,可對上下橋臂提供死區時間,特別適合于三相電源變換等方面的應用。其內部集成了獨立的運算放大器可通過外部橋…

六級閱讀———2024.12卷一 仔細閱讀2

文章 An awakening has been taking place in the physical world against the beauty model that has been dictated to us for years.But in the digital arena,social media determines what is considered beautiful.(51) The two opposing struggles are taking place i…

【C/C++】errno/strerror 和 GetLastError()/FormatMessage 的區別

strerror 和 errno 詳解 printf("Error: %s\n", strerror(errno));這行代碼用于在 C 語言中輸出系統錯誤信息,但它與 Windows 的 GetLastError() 有重要區別。下面我將詳細解釋每個部分及其工作原理。 1. 組件解析 errno 定義:errno 是一個…

Unicode和UTF - 8主要有以下區別

Unicode和UTF - 8主要有以下區別 概念范疇 Unicode:是字符集 。它為世界上幾乎所有的字符(包括各國文字、標點符號、特殊符號等)分配了唯一的編號,這個編號也叫碼位、碼點,比如“中”字的Unicode碼點是U+4E2D 。它規定了字符的抽象表示,只關注字符與數字編號的對應關系,…

企業數字化轉型第二課:接受不完美(1/2)

一.引言 先看一組中國企業數字化轉型相關的數據: 戰略認知層面:92%中國企業將數字化納入戰略核心(麥肯錫2023)執行困境層面:63%企業轉型首年遭遇重大挫折(BCG 2024追蹤)價值釋放周期&#xff1…

OSCP - Proving Grounds - Sumo

主要知識點 ShellShock漏洞dirtycow提權 具體步驟 執行nmap掃描,比較直觀,22和80端口開放,但是80端口沒有什么內容 Nmap scan report for 192.168.210.87 Host is up (0.44s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERV…

pyqt寫一個TCP(UDP)檢測工具

先用電腦連接到目標WIFI,再運行以下代碼。 import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtNetwork import *class NetTestTool(QWidget):def __init__(self):super().__init__()self.init_ui()self.tcp_socket QTcpSocket()…

趣味編程:夢幻萬花筒

目錄 1.效果展示 2.源碼展示 3.代碼邏輯詳解 3.1 頭文件與宏定義 3.2 HSV函數轉RGB顏色函數 3.3 主函數 初始化部分 循環部分 線條繪制部分 刷新和延時部分 結束部分 4.小結 本篇博客主要介紹趣味編程用C語言實現萬花筒小程序。 1.效果展示 2.源碼展示 #define…

軟件開發各階段的自動化測試技術詳解

引言 在當今快速迭代的軟件開發環境中,自動化測試已成為保證軟件質量、提高測試效率的重要手段。本文將深入探討軟件開發生命周期各個階段的自動化測試技術,包括單元測試、代碼級集成測試、Web Service測試和GUI測試的自動化實現方法。 單元測試的自動…

Elasticsearch:我們如何在全球范圍內實現支付基礎設施的現代化?

作者:來自 Elastic Kelly Manrique SWIFT 和 Elastic 如何應對基礎設施復雜性、誤報問題以及日益增長的合規要求。 金融服務公司在全球范圍內管理實時支付方面面臨前所未有的挑戰。SWIFT(Society for Worldwide Interbank Financial Telecommunication -…

day009-用戶管理專題

文章目錄 1. 創建包含時間的文件2. 與用戶相關的文件3. 用戶分類4. 與用戶相關的命令4.1 添加用戶4.2 刪除用戶4.3 查看用戶4.4 修改用戶密碼 5. sudo6. 思維導圖7. 老男孩思想-學習方法 1. 創建包含時間的文件 或$()是替換符號,可以將命令的結果作為字符串或變量的…

shell腳本實現遠程重啟多個服務器

直接deepseek幫寫腳本 remoteReboot.sh #!/bin/bash # 配置文件路徑&#xff08;格式&#xff1a;每行一個服務器地址&#xff09; SERVER_FILE"servers.list" # 讀取服務器列表 mapfile -t SERVERS < "$SERVER_FILE" for server in "${SERVER…

如何利用 QuickAPI 生成 PostgreSQL 樣本測試數據:全面解析與實用指南

目錄 一、什么是 QuickAPI&#xff1f; 二、為什么需要生成樣本測試數據&#xff1f; 三、如何在 QuickAPI 中生成 PostgreSQL 樣本測試數據&#xff1f; 1. 登錄 QuickAPI 平臺 2. 選擇 PostgreSQL 數據庫和目標表 3. 配置樣本數據生成規則 4. 導出或直接插入數據 四、…

黑馬點評day04(分布式鎖-setnx)

4、分布式鎖 4.1 、基本原理和實現方式對比 分布式鎖&#xff1a;滿足分布式系統或集群模式下多進程可見并且互斥的鎖。 分布式鎖的核心思想就是讓大家都使用同一把鎖&#xff0c;只要大家使用的是同一把鎖&#xff0c;那么我們就能鎖住線程&#xff0c;不讓線程并行&#x…

?人工智能在農作物病蟲害識別中的應用前景分析

近年來&#xff0c;全球氣候變化加劇、農業種植規模化發展&#xff0c;農作物病蟲害對糧食安全的威脅日益凸顯。據統計&#xff0c;全球每年因病蟲害造成的農作物損失約占總產量的20%-40%&#xff0c;而傳統依賴人工經驗的防治方式效率低、成本高&#xff0c;難以滿足現代農業需…