LeviR
LeviR

Reputation: 99

How to initiate a Chromium based Vivaldi browser session using Selenium and Python

I am trying to use the vivaldi browser with Selenium. It is a chromium browser that runs very similar to chrome. I have Selenium working with Firefox (geckodriver), and Google Chrome(chromedriver), but I can't seem to find a way with Vivaldi. Any help would be appreciated.

Upvotes: 6

Views: 5611

Answers (4)

DavidBevi
DavidBevi

Reputation: 63

The key executable_path will be deprecated in the upcoming releases of Selenium. This post has the solution. I'm posting a copy of said solution with the path to Vivaldi, where the username is fetched by the script so you don't have to hard code it.

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import os

current_user = os.getlogin()
s = Service(rf"C:\Users\{current_user}\AppData\Local\Vivaldi\Application\vivaldi.exe")
driver = webdriver.Chrome(service=s)
driver.get("http://duckduckgo.com")  # or your website of choice

Upvotes: 1

Mossab
Mossab

Reputation: 1103

For future reference:
to make Vivaldi work with selenium you need to make sure of three things :

  1. The correct version of ChromeDriver
  2. Set selenium's driver to use Vivaldi's binary via webdriver.ChromeOptions()
  3. Make sure you're getting the correct url (don't forget "https://")

All of the above is explained step by step with screenshots in this blog post

Upvotes: 2

undetected Selenium
undetected Selenium

Reputation: 193298

If the vivaldi binary by default is located at C:\Users\levir\AppData\Local\Vivaldi\Application\vivaldi.exe you can use the following solution:

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

options = Options()
options.add_argument("start-maximized")
options.binary_location=r'C:\Users\levir\AppData\Local\Vivaldi\Application\vivaldi.exe'
driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe', options=options)
driver.get('http://google.com/')

Upvotes: 7

Tek Nath
Tek Nath

Reputation: 1789

You can use ChromeOptions and supply binary.

from selenium.webdriver.chrome.options import Options


opt = Options()
opt.binary_location = chromium_path//path to chromium binary
driver = webdriver.Chrome(options=opt, executable_path="path_to_chromedriver")

Upvotes: 0

Related Questions