我想通過鉻運行硒。我寫了這段代碼:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("start-maximized")
options.add_argument("disable-infobars")
options.add_argument("--disable-extensions")
options.add_argument("--disable-gpu")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--no-sandbox")
options.binary_location = "/snap/bin/chromium"
driver = webdriver.Chrome(chrome_options=options)
但是這段代碼會拋出一個錯誤:
selenium.common.exceptions.WebDriverException: Message: unknown error: DevToolsActivePort file doesn't exist
Stacktrace:
#0 0x55efd7355a23 <unknown>
#1 0x55efd6e20e18 <unknown>
#2 0x55efd6e46e12 <unknown>
正確版本的 chromodriver 在 usr/bin 中。我究竟做錯了什么?
uj5u.com熱心網友回復:
拇指規則
Chrome 在啟動期間崩潰的一個常見原因是在 Linux 上以
root用戶 ( ) 身份運行 Chrome。administrator雖然可以通過在創建 WebDriver 會話時傳遞標志來解決此問題--no-sandbox,但這種配置不受支持且不鼓勵使用。您需要將環境配置為以普通用戶身份運行 Chrome。
但是,您需要注意以下幾點:
--disable-gpu與 視窗,所以你需要放棄它。chrome_options已棄用,請options改用。driver = webdriver.Chrome(options=options)
參考
您可以在以下位置找到一些相關的詳細討論:
- WebDriverException:未知錯誤:嘗試啟動 Chrome 瀏覽器時 DevToolsActivePort 檔案不存在
- Selenium-Python 與 chromium 瀏覽器(windows)
- 未知錯誤:在 ubuntu 上執行 Selenium UI 測驗用例時,DevToolsActivePort 檔案不存在錯誤
uj5u.com熱心網友回復:
我通過 apt 重新安裝 chromium 解決了這個問題sudo apt install chromium-browser(在此之前它是通過 snap 安裝的)。我的作業代碼看起來像這樣
options = Options()
options.add_argument("start-maximized")
options.add_argument("disable-infobars")
options.add_argument("--disable-extensions")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--no-sandbox")
if headless:
options.add_argument('--headless')
options.binary_location = "/usr/bin/chromium-browser"
self.driver = webdriver.Chrome(options=options)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/420609.html
標籤:
上一篇:無法為網頁抓取音頻
