Как запустить сеанс браузера Vivaldi на основе Chromium с помощью Selenium и Python

Я пытаюсь использовать браузер vivaldi с Selenium. Это браузер Chrome, который работает очень похоже на Chrome. У меня есть Selenium, работающий с Firefox (geckodriver) и Google Chrome(chromedriver), но я не могу найти способ найти способ с Vivaldi. Любая помощь будет оценена.

4 ответа

Решение

Если двоичный файл vivaldi по умолчанию находится вC:\Users\levir\AppData\Local\Vivaldi\Application\vivaldi.exe вы можете использовать следующее решение:

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

На будущее:
чтобы заставить Вивальди работать с селеном, вам нужно убедиться в трех вещах:

  1. Правильная версия ChromeDriver
  2. Установите драйвер селена для использования двоичного файла Вивальди через webdriver.ChromeOptions()
  3. Убедитесь, что вы получаете правильный URL (не забудьте "https: //")

Все вышеперечисленное объясняется шаг за шагом со скриншотами в этом сообщении блога.

Ключ executable_pathбудет объявлен устаревшим в следующих выпусках Selenium.В этом посте есть решение. Я публикую копию указанного решения с путем к Vivaldi, где имя пользователя извлекается сценарием, поэтому вам не нужно жестко кодировать его.

      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

Ты можешь использовать ChromeOptions и поставьте двоичный.

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")
Другие вопросы по тегам