Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
selenium.common.exceptions.WebDriverException:消息:未知错误:找不到带有OperaDriver selenium和Python的Opera二进制文件_Python_Selenium_Selenium Webdriver_Webdriver_Operadriver - Fatal编程技术网

selenium.common.exceptions.WebDriverException:消息:未知错误:找不到带有OperaDriver selenium和Python的Opera二进制文件

selenium.common.exceptions.WebDriverException:消息:未知错误:找不到带有OperaDriver selenium和Python的Opera二进制文件,python,selenium,selenium-webdriver,webdriver,operadriver,Python,Selenium,Selenium Webdriver,Webdriver,Operadriver,我只是试着让一个简单的Python脚本工作,它只会打开google 我使用pip安装了selenium,并将从selenium页面下载的operadriver放入我的python路径中。我也看了很多关于它的视频,但我找不到解决办法 代码如下: from selenium import webdriver import time driver = webdriver.Opera() driver.get('http://www.google.com') 错误: Traceback (most

我只是试着让一个简单的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)
回溯(最近一次呼叫最后一次):
文件“C:/Users/Tom/AppData/Local/Programs/Python/Python37-32/Scripts/automation.py”,第4行,在
driver=webdriver.Opera()
文件“C:\Users\Tom\AppData\Local\Programs\Python\Python37-32\lib\site packages\selenium\webdriver\opera\webdriver.py”,第83行,在\uuu init中__
服务日志路径=服务日志路径)
文件“C:\Users\Tom\AppData\Local\Programs\Python\Python37-32\lib\site packages\selenium\webdriver\opera\webdriver.py”,第62行,在\uuu init中__
保持活力(保持活力)
文件“C:\Users\Tom\AppData\Local\Programs\Python37-32\lib\site packages\selenium\webdriver\chrome\webdriver.py”,第81行,在__
期望的_能力=期望的_能力)
文件“C:\Users\Tom\AppData\Local\Programs\Python\Python37-32\lib\site packages\selenium\webdriver\remote\webdriver.py”,第157行,在\uuu init中__
启动会话(功能、浏览器配置文件)
文件“C:\Users\Tom\AppData\Local\Programs\Python37-32\lib\site packages\selenium\webdriver\remote\webdriver.py”,第252行,在启动会话中
响应=self.execute(Command.NEW_会话,参数)
文件“C:\Users\Tom\AppData\Local\Programs\Python\Python37-32\lib\site packages\selenium\webdriver\remote\webdriver.py”,执行中第321行
self.error\u handler.check\u响应(响应)
文件“C:\Users\Tom\AppData\Local\Programs\Python37-32\lib\site packages\selenium\webdriver\remote\errorhandler.py”,第242行,在check\u响应中
引发异常类(消息、屏幕、堆栈跟踪)
selenium.common.exceptions.WebDriverException:消息:未知错误:找不到Opera二进制文件
(驱动程序信息:OperaDriver=2.40(a50783a565882ef2022bea655e8560f37ecf8afe),平台=Windows NT 6.1.7601 SP1 x8664)
此错误消息

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 Browser的位置的绝对路径,如下所示:

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.2570之后,我开始发布此问题。这是截至2020年12月14日的最新opera文件夹更新

我修复opera的方法是将C:\Users\your\u user\u name\u here\AppData\Local\Programs\opera\73.0.3856.257\u 0文件夹复制到我的downloads\feedscode文件夹,然后复制 将我的.ipynb文件、operadriver.exe和chromedriver.exe文件保存到73.0.3856.257_0文件夹中,然后在运行该过程之前进行了此更改

chrome\u path=“C:\Users\User\u name\u here\Downloads\FeedsCode\73.0.3856.257\u 0\operadriver.exe”

现在,该过程按预期进行

因此,该错误显然是因为它正在operadriver.exe所在的文件夹中查找opera.exe。你有两个选择1。等待修复或2。照我上面说的做

我相信这会帮助很多人,因为这里的原始答案并不适合我,每个人都喜欢

注意chromedriver.exe没有这个问题,因此您可以简单地使用chromedriver.exe而不是operadriver.exe。我还注意到,在Opera更新中,当我们运行流程时,只要流程窗口保持在屏幕上,它就会正常工作。如果我们转到另一个任务窗口,它将停止,直到您重新打开流程屏幕。chromedriver.exe不会发生这种情况,只有截至2020年12月14日的最新operadriver.exe和Opera更新

注意,我建议的修复有一个优点,那就是Opera浏览器不会自动更新,因为我们将整个73.0.3856.257_0文件夹复制到了另一个位置。您必须手动复制最新的Opera更新文件夹,这样您就不会意外地被更新刺痛