![](/img/trans.png)
[英]Selenium gives "selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrome binary" on Mac
[英]selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Opera binary with OperaDriver Selenium and Python
我只是試圖讓一個簡單的 Python 腳本工作,它應該只打開 google。
我用 pip 安裝了 selenium 並將從 selenium 頁面下載的operadriver放入我的python路徑中。 也看了很多關於它的視頻,但我找不到解決方案..
這是代碼:
from selenium import webdriver
import time
driver = webdriver.Opera()
driver.get('http://www.google.com')
錯誤:
Traceback (most recent call last):
File "C:/Users/Tom/AppData/Local/Programs/Python/Python37-32/Scripts/automate.py", line 4, in <module>
driver = webdriver.Opera()
File "C:\Users\Tom\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\opera\webdriver.py", line 83, in __init__
service_log_path=service_log_path)
File "C:\Users\Tom\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\opera\webdriver.py", line 62, in __init__
keep_alive=keep_alive)
File "C:\Users\Tom\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 81, in __init__
desired_capabilities=desired_capabilities)
File "C:\Users\Tom\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "C:\Users\Tom\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "C:\Users\Tom\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\Tom\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Opera binary
(Driver info: OperaDriver=2.40 (a50783a565882ef2022bea655e8560f37ecf8afe),platform=Windows NT 6.1.7601 SP1 x86_64)
這個錯誤信息...
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Opera binary
(Driver info: OperaDriver=2.40 (a50783a565882ef2022bea655e8560f37ecf8afe),platform=Windows NT 6.1.7601 SP1 x86_64)
...暗示在所需位置未找到Opera 瀏覽器二進制文件。
您的主要問題是Opera 瀏覽器未安裝在默認位置。 所以需要提一下Opera瀏覽器安裝位置的絕對路徑如下:
from selenium import webdriver
from selenium.webdriver.opera.options import Options
options = Options()
options.binary_location = r'C:\path\to\opera.exe'
driver = webdriver.Opera(opera_options = options, executable_path=r'C:\Utility\BrowserDrivers\operadriver.exe')
driver.get('http://www.google.com')
對我來說簡單的解決方案:我有一個 Feedscode 文件夾,其中我的 chromedriver.exe 和我的 operadriver.exe 位於我運行 file.ipynb 文件的下載文件夾中。
這個錯誤很明顯,它在錯誤的地方尋找opera.exe 這個問題是在Opera更新到73.0.3856.257_0之后開始的,這是截至2020年12月14日的最新opera文件夾更新。
我為修復歌劇所做的工作是將 C:\\Users\\your_user_name_here\\AppData\\Local\\Programs\\Opera\\73.0.3856.257_0 文件夾復制到我的 downloads\\feedscode 文件夾,然后復制我的 .ipynb文件和我的operadriver.exe 和chromedriver.exe 文件到73.0.3856.257_0 文件夾,然后我在運行該過程之前進行了這一更改。
chrome_path = "C:\\Users\\User_name_here\\Downloads\\FeedsCode\\73.0.3856.257_0\\operadriver.exe"
現在該過程按預期工作。
因此,該錯誤顯然是由於它正在operadriver.exe 所在的文件夾中查找opera.exe。您有2 個選項1. 等待修復或2. 按照我上面顯示的操作。
我相信這會對很多人有所幫助,因為這里的原始答案並不適合每個人都喜歡的我。
注意 chromedriver.exe 沒有這個問題,所以你可以簡單地使用 chromedriver.exe 而不是operadriver.exe。 我還注意到在 Opera 更新中,當我們運行進程時,只要進程窗口保持在屏幕上,如果我們轉到另一個任務窗口,它將停止,直到您打開進程屏幕備份。 這不會發生在 chromedriver.exe 上,只有 2020 年 14 月 12 日最新的 operadriver.exe 和 Opera 更新。
請注意,我建議的修復有一個優勢,那就是 Opera 瀏覽器不會自動更新,因為我們將整個 73.0.3856.257_0 文件夾復制到了不同的位置,您必須手動復制最新的 Opera 更新文件夾,因此您不會意外地被更新刺痛了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.