How to run Selenium tests on the Brave web browser?
Solution 1
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.
Solution 2
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
Solution 3
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);
Solution 4
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.
Related videos on Youtube
Comments
-
Gertjan Franken almost 2 years
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);
-
visola over 6 yearsCould you add more details on how did you made the webdriver start Brave? I'm trying to do something similar and looking for details.
-
Gertjan Franken over 6 yearsI used the following line to use the Brave binary for the ChromeDriver:
ChromeOptions options = new ChromeOptions().setBinary("/path/to/brave/executable");
-
sapbucket about 6 yearsDid you really get it to load? I see an exception when I try: System.InvalidOperationException occurred HResult=0x80131509 Message=unknown error: no chrome binary at C:\SOMEPATH\Brave64\app-0.22.22\brave.exe (Driver info: chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Windows NT 6.1.7601 SP1 x86_64) Source=WebDriver StackTrace: at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) at....[and this goes on for a while]
-
Gertjan Franken about 6 yearsYes, I managed to load Brave, but that's it. Did it on MacOS though, not sure if the path has something to do with it.
-
-
Petru Zaharia over 4 yearsThanks Barney. For others, please note that as of
Brave Version 0.64.77 Chromium: 74.0.3729.169
you have to mach Chromium Version with ChromeDriver Version (in this caseChromeDriver 74.0.3729.6
) and the.SetBinary()
method changed to.BinaryLocation
property that you can get & set before calling the constructor ofChromeDriver()
with theoptions
object. -
Chacho Fuva over 4 yearsI have similar issue. Some days ago I changed my browser Chrome to Brave. So I uninstalled Chrome, but my script refered to chromedriver. ¿Is the same method ? I'm using Ubuntu 18.04 and Anaconda
-
Mohammed Shareef C over 3 years@PetruZaharia Your comment need to be part of an answer
-
William over 2 yearsDo you have an example of using this with all the basic code needed to launch a browser instance? I am trying to get this working as a "hello world" app and I am unsure how to incorporate your code. Thank you!