Невозможно запустить Opera, используя Python Selenium - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь запустить оперу, используя python библиотеки селена. Но ошибка получения возможностей.

Коды, которые я пробовал:

Код1:

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

Код 2:

driver = webdriver.Opera(r'path to operadriver.exe')
driver.get('https://www.google.com')

Код 3:

options = Options()
options.binary_location = r'C:\Opera\launcher.exe'
driver = webdriver.Opera(options=options)
driver.get('https://www.google.com')

Выход:

Код 1:

selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Opera binary

Код2:

selenium.common.exceptions.WebDriverException: Message: Desired Capabilities must be a dictionary

Код3:

[20904:3220:0120/034255.122:ERROR:os_crypt_win.cc(61)] Failed to decrypt: The parameter is incorrect. (0x57)

DevTools listening on ws://127.0.0.1:59016/devtools/browser/0bb7bc3c-4b9a-451a-a736-a02a63feba7a
[20904:3220:0120/034255.673:ERROR:CONSOLE(0)] "Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.", source: chrome://startpage/ (0)
[20904:3220:0120/034255.674:ERROR:CONSOLE(0)] "Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.", source: chrome://startpage/ (0)
[20904:3220:0120/034255.675:ERROR:CONSOLE(0)] "Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.", source: chrome://startpage/ (0)

Только с кодом 3 запуска браузера Opera. Но URL не открывается.

Поскольку я могу запустить chrome с похожими кодами.

Ответы [ 2 ]

1 голос
/ 20 января 2020

Это сообщение об ошибке ...

selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Opera binary

и это сообщение об ошибке ...

selenium.common.exceptions.WebDriverException: Message: Desired Capabilities must be a dictionary

и это сообщение об ошибке ...

[20904:3220:0120/034255.122:ERROR:os_crypt_win.cc(61)] Failed to decrypt: The parameter is incorrect. (0x57)

... подразумевает, что OperaDriver не смог инициировать / создать новый Контекст просмотра т.е. Opera Browser сеанс.


Решение

Прежде всего вам необходимо убедиться, что вы загрузили самую последнюю версию OperaChromiumDriver с operasoftware / operachromiumdriver . Согласно OperaDriver для выпусков Opera на основе Chromium :

OperaChromiumDriver - это реализация WebDriver, созданная на основе ChromeDriver и адаптированная для Opera , что позволяет программировать c автоматизацию продуктов Opera на базе Chromium для настольных ПК и Android платформ. Он является частью проекта Selenium .

OperaChromiumDriver можно использовать без дополнительной настройки в версиях Opera на основе Chrome, начиная с версии 26.

Использование оба аргумента:

  • binary_location для opera двоичный и
  • executable_path для operadriver двоичный
  • Кодовый блок:

    from selenium import webdriver
    from selenium.webdriver.opera.options import Options
    
    options = Options()
    options.binary_location = r'C:\Opera\launcher.exe'
    driver = webdriver.Opera(options=options, executable_path=r'C:\path\to\operadriver.exe')
    driver.get("http://google.com/")
    
0 голосов
/ 28 марта 2020

Это сработало для меня:

from selenium import webdriver
from selenium.webdriver.opera.options import Options

options = Options()
driver = webdriver.Opera(options=options)
driver.get("https://www.google.com")

Я также получаю те же ошибки, которые вы показывали, но URL-адреса, которые мне нужно открыть, загружаются в Opera автоматически без проблем.

Вам нужно убедитесь, что ваша версия Opera соответствует версии драйвера. проверьте его, открыв Opera и введите следующее: opera: // about Убедитесь, что файл operadriver.exe находится в той же папке, что и скрипт python.

Драйвер можно загрузить здесь: https://github.com/operasoftware/operachromiumdriver/releases

...