開始之前:我知道有 10 億篇關于 Selenium 不起作用的帖子,以及各種可以嘗試的解決方案。我相信我已經嘗試了一切,但如果我遺漏了什么,請原諒我。我的頭撞在墻上,希望得到幫助。
以下是我采取的一些步驟:
我下載了 selenium 的 chromedriver(Ubuntu、Python)并使用chmod 755并且還chmod 777使驅動程式可執行。之后,我用./chromedriver.
我已經嘗試了 Selenium 的各種選項,包括手動添加運行 chromedriver 的埠
from selenium import webdriver
options = webdriver.ChromeOptions()
options.binary_location = "/home/myname/projects/myproject/chromedriver"
options.add_argument("--remote-debugging-port=9515")
chrome_driver_binary = '/home/myname/projects/myproject/chromedriver'
driver = webdriver.Chrome(chrome_driver_binary, options = options)
driver.get('http://www.ubuntu.com/')
我嘗試過其他帖子中建議的選項,例如:
options.add_argument('--no-sandbox')
options.add_argument('--headless')
options.add_argument('--disable-dev-shm-usage')
options.add_argument("--disable-setuid-sandbox")
我已經確定我使用的是與我的 Chrome 版本兼容的 chromedriver。
似乎沒有任何效果。我不斷收到此錯誤:
WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally.
(chrome not reachable)
(The process started from chrome location /home/myname/projects/myproject/chromedriver is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
我真誠地感謝其他人對這個問題的解釋。
uj5u.com熱心網友回復:
您需要注意以下幾點:
options.binary_location: 指的是 谷歌瀏覽器二進制位置,如果Google Chrome未安裝在默認位置,則使用。請參閱:WebDriverException:未知錯誤:對于舊版本的 Google Chrome,在 Python 中找不到帶有 Selenium 的 Chrome 二進制錯誤--remote-debugging-port:如果您不是遠程除錯,則可以安全地洗掉此引數。chrome_driver_binary:指ChromeDriver在您系統中的絕對位置。webdriver.Chrome(chrome_driver_binary, options = options):另外,您可能想添加關鍵的 executable_path如下:chrome_driver_binary = '/home/myname/projects/myproject/chromedriver' driver = webdriver.Chrome(executable_path=chrome_driver_binary, options = options) driver.get('http://www.ubuntu.com/')--no-sandbox、--headless、--disable-dev-shm-usage、--disable-setuid-sandbox等是您可能不需要開始的可選設定。
最小的代碼塊啟動硒驅動ChromeDriver啟動谷歌瀏覽器 瀏覽背景關系可以是:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
driver = webdriver.Chrome(executable_path='/home/myname/projects/myproject/chromedriver', options=options)
driver.get("http://www.ubuntu.com/")
Chrome 在啟動期間崩潰的一個常見原因是在 Linux 上以
root用戶 (administrator)運行 Chrome 。雖然可以通過--no-sandbox在創建 WebDriver 會話時傳遞標志來解決此問題,但這種配置不受支持且非常不鼓勵。您需要將環境配置為以普通用戶身份運行 Chrome。
參考
您可以在以下位置找到一些相關的詳細討論:
- 如何配置 ChromeDriver 以通過 Selenium 在 Headless 模式下啟動 Chrome 瀏覽器?
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/391980.html
