selenium.common.exceptions.WebDriverException:消息:未知错误:无法使用OperaDriver Selenium和Python找到Opera二进制文件

时间:2018-10-13 13:39:00

标签: python selenium selenium-webdriver webdriver operadriver

我只是想让一个简单的Python脚本运行,应该只打开google。

我用pip安装了selenium,并将从selenium页面下载的Operadriver放入了我的python路径。还看了很多关于它的视频,但是我找不到解决方法。

代码如下:

char(1)

错误:

from selenium import webdriver
import time

driver = webdriver.Opera()
driver.get('http://www.google.com')

2 个答案:

答案 0 :(得分:1)

此错误消息...

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 Browser 二进制文件。

您的主要问题是在默认位置未安装 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')

答案 1 :(得分:0)

对我来说简单的解决方案:我有一个Feedscode文件夹,其中chromedriver.exe和operadriver.exe驻留在我的运行file.ipynb文件的downloads文件夹中。

错误很明显,它是在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文件夹中,然后将其复制到73.0.3856.257_0 将我的.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”

现在该过程可以按预期进行。

因此,错误显然是由于它正在Operaoperdriver.exe所在的文件夹中寻找Opera.exe。您有2个选项1.等待修复或2。按照上面的步骤操作

我确信这将对很多人有帮助,因为这里的原始答案并不适合每个人都喜欢的我。

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

请注意,我建议的修复程序有一个优势,那就是Opera浏览器不会自动更新,因为我们将整个73.0.3856.257_0文件夹复制到了其他位置,因此您必须手动复制最新的Opera更新的文件夹,因此不会被更新意外ung住。