[Python][Selenium] Chrome Browser 與 Driver 惱人的版本管理

更新於 發佈於 閱讀時間約 7 分鐘
最近手邊事情告了一個段落,剛好有空就來記錄一下 2019 寫過的小工具,Selenium 這套 Web Testing Framework 算是在軟體業界自動化測試很有名的一套網頁自動化測試、爬蟲框架,但用了幾年後…總覺得需要不斷的去維護瀏覽器版本與 Driver 版本…好麻煩~一直在思考著怎麼做比較可以一勞永逸。
畢竟~我是一個懶人嘛...
如果隨便把 Selenium WebDriver 關鍵字拿去餵狗,你可以查到各種爆炸多的教學文章教你怎麼讓 Selenium 跑起來,但…始終找不到有關版本管理的方法,這件事情真的讓我們的測試環境不斷的出現問題 (尤其 Windows),常常因為測試時間太長 Google Chrome 自己跑去更新 (也許測試時間太長才是問題...XD),我們困擾許久…
估狗之後,大部分的做法就是手動的去下載當前瀏覽器對應版本的 Driver,放到一個特定位置,將 Driver Binary 位置指向它。
在 Google Chrome About Page 你可以看到版本
接著去下載對應的 Chrome Driver ↓
但,這件事就真的是非常麻煩 RRRRRRR
測試環境一但更新,運氣好可能還有機會可以運行,
運氣不好就是全部測試炸光光…

解決方案:

  1. 將 Google Chrome 更新關掉,讓測試環境瀏覽器固定在某個特定版本
  2. 用 Windows PowerShell 軟體管理工具 Chocolate 完成
  3. 自幹一個 Python Chrome Driver Helper 在 Windows 底下運作,自動偵測當前的版本並且下載當前對應的 Driver
方案1. 是一種硬幹的方式,比較不推薦的,畢竟如果有一天需要測試新版的瀏覽器的話,還是一樣會遇到問題 QAQ
方案2. 首先你的環境要先安裝 Chocolate,這種方式也許是可以達成,但看似還是要自己多寫一個 Script 去偵測當前瀏覽器版本… ( 如果你覺得這個比較好用的話再將你的心得分享給小弟…XD )
可以到這裡下載 ↓
# 你可以暴力一點下再全部 Driver
choco install selenium-all-drivers
# 或是
# 特定的 Chrome Driver
choco install selenium-chrome-driver
方案3. 這是最後與我們團隊討論後,選擇使用的方式 --- 自幹
Python Chrome Driver Helper
目標:
  1. 取得當前環境的 Chrome Browser Version
  2. 想辦法查到對應版本
  3. 下載對應版本的 Driver 並放到指定位置
Environment Requirements:
Windows
1. Python 3+
2. Google Chrome
Python Packages
pip install pypiwin32
pip install requests
Folder Structure
--- chrome_helper.py
file_util.py
第1步,創建一個 file_util.py
利用 Python Win32 API module 取得 chrome.exe 版號。
get_file_version() --- 取得版本號
write_json() --- 寫 json file
read_json() --- 讀 json file
第2步,找到一個可以查詢版本的方法,透過 query API 完成
Latest Version API
https://chromedriver.storage.googleapis.com/LATEST_RELEASE_{version}
Download Chrome Driver API
https://chromedriver.storage.googleapis.com/{version}/chromedriver_win32.zip
例如環境的 Chrome 版本為 79.0.3945.88,只要將 {version} = 79 帶入主版本號 即可完成查詢與下載。
chrome_helper.py
有了這個 chrome_helper.py 後,只要在測試最一開始的環境檢查或是 Setup 的部分呼叫 check_browser_driver_available() 即可。
之後會產生三個檔案,在 C:\temp\chrome 底下:
chromedriver.exe
chromedriver_win32.zip
mapping.json
mapping.json 用來控制 Browser 與 Driver 的對應:
{
"79": {
"driver_path": "C:\\temp\\chrome\\chromedriver.exe",
"driver_version": "79.0.3945.36"
}
}
讚讚讚!!!
這樣就可以不用去管目前瀏覽器是什麼版本,需要下載哪一版的 Driver 啦~
為什麼會看到廣告
avatar-img
3會員
9內容數
Drunk Wis
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Wis Vocus 的其他內容
前言 隨著越來越多公司導入 DevOps 、Agile、Scrum 開發模式,作為基礎設施的 CI / CD Pipeline 也越來越被需要。但是導入的過程中, 總會遇到一些問題: CI / CD Pipeline 該怎麼建 !? Pipeline 工具該怎麼選擇 !? 老天 : 去看書 ! …
某天收到一封來自 Google TW - Test Engineer, Android 的面試邀請,於是開始請HR幫忙安排後續一切事情,首先要先感謝 HR Jenny 很用心、很細心的跟我說明接下來面試的流程,也提供我許多面試相關的參考文件,真的是萬般感謝,讓我感到備受尊重。當然! 面試不外乎還是要
什麼是Pytest? Pytest是一款強大的Python測試工具,支援平行化測試,使用上簡單方便,適合用在各種不同類型的軟體架構,也適用於RD、QA或獨立測試小組,也適合正要導入TDD的公司。 來寫測試吧! 先用pip安裝pytest: libs\module.py 參考資料:
Software QA Engineer 成長紀錄與面試經驗分享 個人背景 面試經驗 1. 一動數據 Quadas - Sr. Software Engineer (Automation Test) 結果: 感謝函 結果: 婉拒 3. 紅點子科技 Voice Tube - 自動化軟體測試工程師
前言 隨著越來越多公司導入 DevOps 、Agile、Scrum 開發模式,作為基礎設施的 CI / CD Pipeline 也越來越被需要。但是導入的過程中, 總會遇到一些問題: CI / CD Pipeline 該怎麼建 !? Pipeline 工具該怎麼選擇 !? 老天 : 去看書 ! …
某天收到一封來自 Google TW - Test Engineer, Android 的面試邀請,於是開始請HR幫忙安排後續一切事情,首先要先感謝 HR Jenny 很用心、很細心的跟我說明接下來面試的流程,也提供我許多面試相關的參考文件,真的是萬般感謝,讓我感到備受尊重。當然! 面試不外乎還是要
什麼是Pytest? Pytest是一款強大的Python測試工具,支援平行化測試,使用上簡單方便,適合用在各種不同類型的軟體架構,也適用於RD、QA或獨立測試小組,也適合正要導入TDD的公司。 來寫測試吧! 先用pip安裝pytest: libs\module.py 參考資料:
Software QA Engineer 成長紀錄與面試經驗分享 個人背景 面試經驗 1. 一動數據 Quadas - Sr. Software Engineer (Automation Test) 結果: 感謝函 結果: 婉拒 3. 紅點子科技 Voice Tube - 自動化軟體測試工程師
你可能也想看
Google News 追蹤
Thumbnail
/ 大家現在出門買東西還會帶錢包嗎 鴨鴨發現自己好像快一個禮拜沒帶錢包出門 還是可以天天買滿買好回家(? 因此為了記錄手機消費跟各種紅利優惠 鴨鴨都會特別注意銀行的App好不好用! 像是介面設計就是會很在意的地方 很多銀行通常會為了要滿足不同客群 會推出很多App讓使用者下載 每次
Thumbnail
用 PyInstaller 打包一個簡單計算機應用 (GUI 使用 PyQt5) 本教學將帶您使用 PyQt5 建立一個簡單的計算機應用,並透過 PyInstaller 將其打包成執行檔(EXE)。 1. 安裝所需環境 在開始之前,請確保您已安裝以下工具: 必要套件 Python: 建
Thumbnail
使用 Selenium 自動滾動網頁並抓取文章連結 在網頁爬蟲開發中,我們經常遇到需要自動滾動頁面以加載新內容的場景,特別是在一些無限滾動的頁面中(例如新聞網站或社交媒體)。 本文將介紹如何使用 Python 的 Selenium 庫來實現這一需求,並抓取頁面中的VCC自己文章的連結。
在 Python 的數據處理與科學計算領域,NumPy 是一個不可或缺的基礎工具。它的強大在於提供了高效的多維陣列操作,並支援向量化運算,極大地提升了程式執行效率。本篇文章將詳細介紹 NumPy 的基本概念、功能以及實踐應用,幫助你快速上手這個重要的工具。
Thumbnail
大小寫轉換 空白處理 搜尋和替換字串 分割和連接 判斷字串特性 對齊
Thumbnail
Tesseract 是一個開源的光學字符識別 (OCR) 引擎,可通過自定義訓練來改進對特定字體或語言的識別。 以下是一份基於 tesstrain 工具,並針對 Windows CMD 的完整 Tesseract 5 訓練教學。將利用官方提供的ocrd-testset.zip來做示範 前置
Thumbnail
想要使用python學習程式應該要怎麼開始呢? 首先就是要下載Python(程式語言)還有Pychar(整合開發環境,IDE)這兩個軟體。 在Google的搜尋欄位打上Python下載, 點選第一個Download Python。 第二步點選Download,選擇你的電腦系統。
Thumbnail
在離線環境需要安裝Python套件時就相當的麻煩,需要先下載好套件包,在打指令安裝,若套件數量一多時就會相當麻煩。 本文將介紹如何利用兩行指令快速的安裝整個資料夾的套件。
Thumbnail
Selenium 是一個範圍廣泛的工具和函式庫的總稱專案,用於啟用和支援網頁瀏覽器的自動化。Selenium WebDriver 提供了 C#、JavaScript、Java、Python、Ruby 等多種語言的 API,可以用於編寫自動化測試軟體。 在定位元素時,WebDriver 提供對這 8
想要開始Python語言的開發環境,有兩種常見方式,一種是下載安裝到本機端,另一種是直接在雲端執行。本文將介紹三個常見的開發工具及其安裝步驟。
Thumbnail
搜尋.......支援的driver: apt search nvidia-drive 最新支援到545,我們來裝545好了(通常我會選擇前一版,我也建議選前一版,像是python12 我們就選python11) sudo apt install nvidia-driver-545 sudo
Thumbnail
/ 大家現在出門買東西還會帶錢包嗎 鴨鴨發現自己好像快一個禮拜沒帶錢包出門 還是可以天天買滿買好回家(? 因此為了記錄手機消費跟各種紅利優惠 鴨鴨都會特別注意銀行的App好不好用! 像是介面設計就是會很在意的地方 很多銀行通常會為了要滿足不同客群 會推出很多App讓使用者下載 每次
Thumbnail
用 PyInstaller 打包一個簡單計算機應用 (GUI 使用 PyQt5) 本教學將帶您使用 PyQt5 建立一個簡單的計算機應用,並透過 PyInstaller 將其打包成執行檔(EXE)。 1. 安裝所需環境 在開始之前,請確保您已安裝以下工具: 必要套件 Python: 建
Thumbnail
使用 Selenium 自動滾動網頁並抓取文章連結 在網頁爬蟲開發中,我們經常遇到需要自動滾動頁面以加載新內容的場景,特別是在一些無限滾動的頁面中(例如新聞網站或社交媒體)。 本文將介紹如何使用 Python 的 Selenium 庫來實現這一需求,並抓取頁面中的VCC自己文章的連結。
在 Python 的數據處理與科學計算領域,NumPy 是一個不可或缺的基礎工具。它的強大在於提供了高效的多維陣列操作,並支援向量化運算,極大地提升了程式執行效率。本篇文章將詳細介紹 NumPy 的基本概念、功能以及實踐應用,幫助你快速上手這個重要的工具。
Thumbnail
大小寫轉換 空白處理 搜尋和替換字串 分割和連接 判斷字串特性 對齊
Thumbnail
Tesseract 是一個開源的光學字符識別 (OCR) 引擎,可通過自定義訓練來改進對特定字體或語言的識別。 以下是一份基於 tesstrain 工具,並針對 Windows CMD 的完整 Tesseract 5 訓練教學。將利用官方提供的ocrd-testset.zip來做示範 前置
Thumbnail
想要使用python學習程式應該要怎麼開始呢? 首先就是要下載Python(程式語言)還有Pychar(整合開發環境,IDE)這兩個軟體。 在Google的搜尋欄位打上Python下載, 點選第一個Download Python。 第二步點選Download,選擇你的電腦系統。
Thumbnail
在離線環境需要安裝Python套件時就相當的麻煩,需要先下載好套件包,在打指令安裝,若套件數量一多時就會相當麻煩。 本文將介紹如何利用兩行指令快速的安裝整個資料夾的套件。
Thumbnail
Selenium 是一個範圍廣泛的工具和函式庫的總稱專案,用於啟用和支援網頁瀏覽器的自動化。Selenium WebDriver 提供了 C#、JavaScript、Java、Python、Ruby 等多種語言的 API,可以用於編寫自動化測試軟體。 在定位元素時,WebDriver 提供對這 8
想要開始Python語言的開發環境,有兩種常見方式,一種是下載安裝到本機端,另一種是直接在雲端執行。本文將介紹三個常見的開發工具及其安裝步驟。
Thumbnail
搜尋.......支援的driver: apt search nvidia-drive 最新支援到545,我們來裝545好了(通常我會選擇前一版,我也建議選前一版,像是python12 我們就選python11) sudo apt install nvidia-driver-545 sudo