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

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

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

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

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

7 ответов

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

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

Система:
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://stackru.com')

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

Для 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);

Спасибо, @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)

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

Мне не удалось добиться успеха с приведенными выше примерами, хотя мне удалось заставить его работать так, используя решение, которое я нашел на /questions/37903140/chromeoptions-vyizyivaet-oshibku-ssyilki-ispolzuya-selenium-chromedriver-dlya-nodejs/37903153#37903153 ..

      const chrome = require('selenium-webdriver/chrome')

const chromeOptions = new chrome.Options()

chromeOptions.setChromeBinaryPath('/usr/bin/brave-browser')

Это будет работать для Python:

      from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.binary_location = r"C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe"

driver = webdriver.Chrome(options=chrome_options)

для пользователей java и linux:

          System.setProperty("webdriver.chrome.driver","src/chromedriver");

    ChromeOptions options = new ChromeOptions();

    options.setBinary("/usr/bin/brave-browser");
    options.addArguments("--start-maximized");
    options.addArguments("--disable-extensions");
    options.addArguments("--disable-gpu ");
    options.addArguments("--no-sandbox");

    WebDriver driver=new ChromeDriver(options);
    driver.get("https://www.yourlinkhere.com");
Другие вопросы по тегам