如何使用 Selenium 和 Python 启动基于 Chromium 的 Vivaldi 浏览器会话

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

我正在尝试将 vivaldi browser 与 Selenium 结合使用。它是一个运行非常类似于 chrome 的 chromium 浏览器。我有 Selenium 与 Firefox (geckodriver) 和 Google Chrome(chromedriver) 一起工作,但我似乎无法找到 Vivaldi 的方法。任何帮助,将不胜感激。

您可以使用 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")

如果默认情况下 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/')

供日后参考:
要使 Vivaldi 使用 selenium,您需要确保三件事:

  1. ChromeDriver
  2. 的正确版本
  3. 通过 webdriver.ChromeOptions()
  4. 设置 selenium 的驱动程序以使用 Vivaldi 的二进制文件
  5. 确保您获得正确的 url(不要忘记“https://”)

以上所有内容都在 this blog post

中通过屏幕截图逐步说明

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