找不到驅動程式錯誤
從歷史上看,這是 Selenium 初學者第一次嘗試執行程式碼時最常遇到的錯誤
可能原因
透過 WebDriver,Selenium 支援所有主要的瀏覽器。為了驅動請求的瀏覽器,Selenium 需要透過可執行驅動程式向其發送命令。此錯誤表示 Selenium 嘗試使用的任何方法都找不到必要的驅動程式。
可能的解決方案
有多種方法可以確保 Selenium 取得所需的驅動程式。
使用最新版本的 Selenium
從 Selenium 4.6 開始,Selenium 會為您下載正確的驅動程式。您應該不需要做任何事情。如果您使用的是最新版本的 Selenium 並且遇到錯誤,請開啟記錄並提交錯誤報告並附上該資訊。
如果您想閱讀更多關於 Selenium 如何為您管理驅動程式下載的資訊,您可以閱讀關於 Selenium Manager 的內容。
使用 PATH
環境變數
此選項首先需要手動下載驅動程式。
這是一個彈性的選項,可以在不必更新程式碼的情況下更改驅動程式的位置,並且可以在多台機器上運作,而無需每台機器都將驅動程式放在相同的位置。
您可以將驅動程式放在已經在 PATH
中列出的目錄中,或者您可以將它們放在一個目錄中並將其添加到 PATH
。
要查看 PATH
上已有哪些目錄,請開啟終端機並執行
echo $PATH
如果驅動程式的位置尚未在列出的目錄中,您可以將新目錄添加到 PATH
echo 'export PATH=$PATH:/path/to/driver' >> ~/.bash_profile
source ~/.bash_profile
您可以透過檢查驅動程式的版本來測試是否已正確添加
chromedriver --version
要查看 PATH
上已有哪些目錄,請開啟終端機並執行
echo $PATH
如果驅動程式的位置尚未在列出的目錄中,您可以將新目錄添加到 PATH
echo 'export PATH=$PATH:/path/to/driver' >> ~/.zshenv
source ~/.zshenv
您可以透過檢查驅動程式的版本來測試是否已正確添加
chromedriver --version
要查看 PATH
上已有哪些目錄,請開啟命令提示字元並執行
echo %PATH%
如果驅動程式的位置尚未在列出的目錄中,您可以將新目錄添加到 PATH
setx PATH "%PATH%;C:\WebDriver\bin"
您可以透過檢查驅動程式的版本來測試是否已正確添加
chromedriver.exe --version
指定驅動程式的位置
如果您無法升級到最新版本的 Selenium,您不希望 Selenium 為您下載驅動程式,並且您無法弄清楚環境變數,則可以在 Service 物件中指定驅動程式的位置。
您首先需要下載所需的驅動程式,然後建立適用的 Service
類別的實例,並設定路徑。
在程式碼本身中指定位置的優點是不需要弄清楚系統上的環境變數,但缺點是使程式碼的彈性降低。
驅動程式管理函式庫
在 Selenium 自己管理驅動程式之前,已經創建了其他專案來為您執行此操作。
如果您因為使用舊版本的 Selenium 而無法使用 Selenium Manager(請升級),或者需要 Selenium Manager 尚未實作的進階功能,您可以嘗試使用這些工具來自動更新您的驅動程式
- WebDriverManager (Java)
- WebDriver Manager (Python)
- WebDriver Manager Package (.NET)
- webdrivers gem (Ruby)
下載驅動程式
瀏覽器 | 支援的作業系統 | 維護者 | 下載 | 問題追蹤器 |
---|---|---|---|---|
Chromium/Chrome | Windows/macOS/Linux | 下載 | 問題 | |
Firefox | Windows/macOS/Linux | Mozilla | 下載 | 問題 |
Edge | Windows/macOS/Linux | Microsoft | 下載 | 問題 |
Internet Explorer | 視窗 | Selenium 專案 | 下載 | 問題 |
Safari | macOS High Sierra 和更新版本 | Apple | 內建 | 問題 |
注意:Opera 驅動程式已不再與 Selenium 的最新功能相容,目前官方不支援。