Как запустить тесты Selenium в браузере Brave?

Я пытаюсь запустить несколько тестов Selenium в браузере Brave. Я могу запустить браузер Brave через Selenium с помощью ChromeDriver. Однако больше ничего не работает, например Я не могу заставить Brave загрузить определенную веб-страницу.

Поскольку Brave основан на Chromium, я думаю, это правильный путь. Есть ли более подходящие способы поддержки работы Brave на Selenium?

Это код, который я использовал:

    ChromeOptions options = new ChromeOptions().setBinary("/Applications/Brave.app/Contents/MacOS/brave");
    WebDriver driver = new ChromeDriver(options);

person Barney Kelly    schedule 07.11.2017    source источник
comment
Не могли бы вы добавить более подробную информацию о том, как вы заставили веб-драйвер запустить Brave? Я пытаюсь сделать что-то подобное и ищу подробности.   -  person visola    schedule 14.12.2017
comment
Я использовал следующую строку, чтобы использовать двоичный файл Brave для ChromeDriver: ChromeOptions options = new ChromeOptions().setBinary("/path/to/brave/executable");   -  person Barney Kelly    schedule 15.12.2017
comment
Вы действительно заставили его загрузиться? При попытке я вижу исключение: Произошло System.InvalidOperationException HResult = 0x80131509 Сообщение = неизвестная ошибка: нет двоичного файла Chrome в C: \ SOMEPATH \ Brave64 \ app-0.22.22 \ brave.exe (Информация о драйвере: chromedriver = 2.38.552522 ( 437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb), platform = Windows NT 6.1.7601 SP1 x86_64) Source = WebDriver StackTrace: в OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError, пока ответ на сообщение об ошибке…   -  person sapbucket    schedule 23.04.2018
comment
Да, мне удалось загрузить Brave, но это все. Однако сделал это на MacOS, не уверен, что путь имеет к этому какое-то отношение.   -  person Barney Kelly    schedule 07.05.2018


Ответы (4)


Для справки: это больше не проблема, так как Brave перешла на полный Chromium (начиная с версии 0.57). Теперь я могу передать инструкции WebDriver, инициализировав его с помощью фрагмента кода, включенного в вопрос.

Тем не менее, убедитесь, что ваша версия ChromeDriver совместима с версией браузера Brave.

person Barney Kelly    schedule 29.04.2019
comment
Спасибо, Барни. Для других, обратите внимание, что начиная с Brave Version 0.64.77 Chromium: 74.0.3729.169 вы должны обрабатывать версию Chromium с версией ChromeDriver (в данном случае ChromeDriver 74.0.3729.6), а метод .SetBinary() изменен на свойство .BinaryLocation, которое вы можете получить и установить перед вызовом конструктора ChromeDriver() с объектом options. - person Petru Zaharia; 01.10.2019
comment
@PetruZaharia Ваш комментарий должен быть частью ответа - person Mohammed Shareef C; 27.10.2020

Система:
macOS Catalina 10.15.2
Python 3.7.4
pytest 5.3.2
selenium 3.141.0
ChromeDriver 79.0.3945.36
Brave 1.1 .23 Chromium: 79.0.3945.88 (официальная сборка) (64-разрядная версия)

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.binary_location = '/Applications/Brave Browser.app/Contents/MacOS/Brave Browser'
driver_path = '/usr/local/bin/chromedriver'
drvr = webdriver.Chrome(options = options, executable_path = driver_path)
drvr.get('https://stackoverflow.com')

Ссылка:
Установить двоичный файл браузера Chrome через chromedriver в Python

person datalifenyc    schedule 23.12.2019
comment
У меня похожая проблема. Несколько дней назад я изменил свой браузер Chrome на Brave. Поэтому я удалил Chrome, но мой скрипт ссылался на chromedriver. ¿Это тот же метод? Я использую Ubuntu 18.04 и Anaconda - person Chacho Fuva; 05.03.2020

Спасибо, @BarneyKelly, отлично работает! В python3 (Linux Mint 2020) я использовал:

def abre_navegador(self):
    # Avenue_Basico.wd = webdriver.Firefox()   # Criar instância do navegador 
    # Avenue_Basico.wd = webdriver.Chrome()   # Criar instância do navegador

    options = Options()
    options.binary_location = '/usr/bin/brave-browser'
    driver_path = '/usr/local/bin/chromedriver'
    self.wd = webdriver.Chrome(options = options, executable_path = driver_path)

Еще раз спасибо за вашу помощь.

person Fernando carvalho    schedule 27.07.2020

для Windows путь пользователя должен быть абсолютным в вашем случае

System.setProperty("webdriver.chrome.driver","E:\\WEBDRIVER PLUGINS\\chromedriver_win32\\chromedriver.exe");
ChromeOptions options = new ChromeOptions().setBinary("C:\\Program Files (x86)\\BraveSoftware\\Brave-Browser\\Application\\brave.exe");
WebDriver driver = new ChromeDriver(options);
person Abhinay Meshram    schedule 06.01.2020