How to run Selenium tests on the Brave web browser?

Viewed 25310

I am trying to run some Selenium tests on the Brave web browser. I am able to start the Brave web browser through Selenium by using the ChromeDriver. However, nothing else works, e.g. I cannot cause Brave to load a certain web page.

As Brave is based on Chromium, I would think this is the way to go. Are there more appropriate ways that support Brave to be driven by Selenium?

This is de code that I used:

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

For the record: this is no longer an issue since Brave went full-Chromium (starting from version 0.57). I can now pass instructions to the WebDriver by initializing it using the code snippet included in the question.

Nevertheless, be sure to check that your ChromeDriver version is compatible with your Brave Browser version.

System:
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 (Official Build) (64-bit)

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')

Reference:
Set chrome browser binary through chromedriver in Python

for windows user path must be absolute in your case

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);

Thanks, @BarneyKelly, works like a charm! In python3 (Linux Mint 2020) I used:

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)

Again, Thank You for your help.

I was unable to find success with the above examples, though I did manage to get it working like so:

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

const chromeOptions = new chrome.Options()

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

for java and linux users:

    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");
Related