首页 > 编程问答 >如何将 Brave 网络浏览器与 python、selenium 和 chromedriver 结合使用?

如何将 Brave 网络浏览器与 python、selenium 和 chromedriver 结合使用?

时间:2024-07-27 13:48:55浏览次数:13  
标签:python selenium selenium-chromedriver brave brave-browser

我从 Google 的 Chrome 切换到 Brave 网络浏览器 并且很难让它像 Chrome 一样与 Brave 一起使用。 Brave 是基于 Chromium 的,所以我猜它应该不会那么难。我确保我的 Brave 和 Chromedriver 处于相同版本,像这样,

~/some/path $ chromedriver --version
ChromeDriver 76.0.3809.126 (d80a294506b4c9d18015e755cee48f953ddc3f2f-refs/branch-heads/3809@{#1024})

我的 chromedriver 也在 /user/bin

~/path $ cd /usr/bin/
/usr/bin $ ls | grep chromedriver
chromedriver 

并且要检查 Brave 版本,我得到: Version 0.68.132 Chromium: 76.0.3809.132 (Official Build) (64-bit)

然后我运行此代码,

from selenium import webdriver

driver = webdriver.Chrome(executable_path='/usr/bin/brave-browser')
driver.get("http://www.python.org")
driver.close()

这会打开一个 Brave 窗口,但不会获取驱动程序所指向的页面,而是会引发异常,

Traceback (most recent call last):
  File "webscrap.py", line 3, in <module>
    driver = webdriver.Chrome(executable_path='/usr/bin/brave-browser')
  File "/home/username/.local/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__
    self.service.start()
  File "/home/username/.local/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 98, in start
    self.assert_process_still_running()
  File "/home/username/.local/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 111, in assert_process_still_running
    % (self.path, return_code)
selenium.common.exceptions.WebDriverException: Message: Service /usr/bin/brave-browser unexpectedly exited. Status code was: -11

在代码中遇到的问题在于试图将 webdriver.Chrome 实例化时,将 Brave 浏览器的可执行文件路径传递给了 executable_path 参数。 webdriver.Chrome 是专门为 Chrome 浏览器设计的,而 Brave 虽然基于 Chromium,但拥有不同的可执行文件和配置。

为了使用 Selenium 控制 Brave 浏览器,需要使用 chromedriver 并指定 Brave 浏览器的路径。以下是操作步骤:

1. 下载与的 Brave 浏览器版本匹配的 ChromeDriver

  • 访问 ChromeDriver 下载页面: https://chromedriver.chromium.org/downloads
  • 选择与的 Brave 浏览器版本相对应的 ChromeDriver 版本。可以通过访问 brave://settings/help 查看 Brave 浏览器版本。
  • 下载对应操作系统的 ChromeDriver 版本。

2. 解压 ChromeDriver 文件(如果需要)

3. 将 ChromeDriver 添加到系统路径或将其放置在脚本可以访问的目录中。

4. 修改的 Python 代码

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

# 设置 Brave 浏览器的选项
options = Options()
options.binary_location = '/path/to/brave-browser' # 替换为的 Brave 浏览器可执行文件路径

# 创建 ChromeDriver 实例,指定 ChromeDriver 路径和 Brave 浏览器选项
driver = webdriver.Chrome(executable_path='/path/to/chromedriver', options=options)

driver.get("http://www.python.org")
driver.close()

请确保将以下内容替换为的实际路径:

  • /path/to/brave-browser :Brave 浏览器可执行文件的路径。
  • /path/to/chromedriver :ChromeDriver 可执行文件的路径。

通过这些步骤,就可以使用 Python、Selenium 和 ChromeDriver 成功控制 Brave 浏览器了。

标签:python,selenium,selenium-chromedriver,brave,brave-browser
From: 57837496

相关文章

  • 覆盖 python 应用程序时权限被拒绝
    我使用python制作了一个粗略的自动更新应用程序,并使用freeze-cx制作了exe文件。首先,该应用程序检查firebase服务器上是否有最新版本的文件可用,如果可用则下载zip文件。并且应用程序解压并覆盖文件。this_file_path=sys.executableifgetattr(sys,'frozen......
  • Python数据分析案例55——基于LSTM结构自编码器的多变量时间序列异常值监测
    案例背景时间序列的异常值检测是方兴未艾的话题。比如很多单变量的,一条风速,一条用电量这种做时间序列异常值检测,想查看一下哪个时间点的用电量异常。多变量时间序列由不同变量随时间变化的序列组成,这些时间序列在实际应用中通常来自不同的传感器或数据源。多变量时间序列异......
  • selenium----CSS表达式选择元素
    前面我们学习了根据id、class属性、tag名选择元素。如果我们要选择的元素没有id、class属性,或者有些我们不想选择的元素也有相同的id、class属性值,怎么办呢?这时候我们通常可以通过 CSSselector 语法选择元素。选择元素通过CSSSelector选择单个元素的方法是fin......
  • 我没有 python 但我有 python3
    我最近格式化了我的笔记本电脑并安装了Ubuntu操作系统。我没有明确安装Python。为了检查它是否已预安装,我在终端中运行python--version并得到了这个:$python--versionCommand'python'notfound,butcanbeinstalledwith:sudoaptinstallpython3......
  • 基于YOLOv9的停车场空闲车位检测【python源码+UI界面+数据集+模型+语音报警+安装说明
    往期精品导航基于YOLOv9的脑肿瘤区域检测智慧课堂基于YOLOv8的学生上课行为检测基于YOLOv9+pyside的安检仪x光危险物物品检测(有ui)基于YOLOv9的PCB板缺陷检测基于YOLOv9的线路绝缘子缺陷检测【python源码+UI界面+数据集+模型+语音报警+安装说明】基于YOLOv9的道路状况检测【......
  • 1-python的数据类型与变量
    一、交互模式与脚本模式交互模式:就相当于一种问答模式,关闭即消失无法保存重用比如python自带的编译器脚本模式:可以将代码长期保存以及重复使用如何创建脚本模式:idle——file——newfile[快捷方式:idle——ctrl+n]保存:ctrl+s运行:F5二、变量(Variable)变量:会变化......
  • 2-Python数据类型——序列
    Python数据类型——序列一、序列序列是一个可以存放多个值的容器。有序序列:在序列中每个值都有对应的下标下标:就相当于酒店的房间号,方便客人的查找与酒店的管理在编程中下标的起始值与日常生活中的计数有所不同:下标的计数从0开始计数,从左往右计数:下标从0开始往右递......
  • 将 chrome 更新到 127 版本后,用 selenium 编写的脚本遇到错误
    将我的chrome更新到127版本后,我所有的selenium测试脚本都开始出现错误。有人有同样的问题吗?我在其中一个问题上看到通过添加脚本options.addArguments("--disable-search-engine-choice-screen");来解决这种情况,但是我如何才能将它正确添加到我的脚本中?fromse......
  • crontab 运行 .sh 文件调用 python 脚本
    我有一个pythonselenium脚本,可以打开chrome并为我运行一些自动化任务。在crontab中直接调用python可以使用下面的行。:10.0是我运行echo$DISPLAY时得到的值。我使用的是Ubuntu22.04.4LTS5823**2DISPLAY=:10.0/usr/bin/python3/home/user/Script......
  • Pythonanywhere - ping:套接字:不允许操作
    请帮忙。我有一个Telegram机器人,当我从Bash控制台启动他时,它每60秒ping一次静态IP-它工作正常,但每天停止工作一次。我尝试使用“始终开启任务”,但在日志文件中收到“ping:套接字:不允许操作”。我有5美元帐户,我能做什么?从Bash控制台运行时我看到的内容:---17......