[Web自动化] Selenium设置相关执行文件路径

10.7 Selenium设置相关执行文件路径

10.7.1 设置驱动文件位置

Selenium在启动浏览器时,需要指定浏览器驱动(如chromedriver、geckodriver等)的位置。设置驱动文件位置的方法主要有以下几种:

  1. 将驱动文件放在系统环境变量中
    • 将浏览器驱动的完整路径添加到系统的PATH环境变量中。这样,Selenium在启动时就可以自动找到驱动文件,而无需在代码中指定路径。
    • 注意:这种方法的好处是代码简洁,但缺点是如果系统中有多个版本的驱动或需要在不同项目中使用不同版本的驱动,可能会带来管理上的不便。
  2. 在代码中指定驱动文件位置
    • 如果不将驱动添加到系统环境变量,可以在Selenium的初始化代码中直接指定驱动文件的路径。这通常通过传递一个包含驱动路径的Service对象或指定executable_path参数来实现(尽管executable_path参数已被弃用,推荐使用Service对象)。
    • 示例代码(使用Service对象):
python 复制代码
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
service = Service(executable_path='/path/to/chromedriver')
driver = webdriver.Chrome(service=service)
  • 注意:请将'/path/to/chromedriver'替换为你的chromedriver驱动文件的实际路径。

10.7.2 设置浏览器程序位置

在使用 Selenium 启动浏览器时,如果浏览器可执行文件不在你的系统路径(PATH)中,你需要指定浏览器的路径。

py 复制代码
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 指定Chrome浏览器的路径
chrome_binary_path = '/path/to/chrome.exe'
# 创建ChromeOptions对象
options = Options()
options.binary_location = chrome_binary_path
# 创建WebDriver对象时传递ChromeOptions
driver = webdriver.Chrome(options=options)

10.7.3 设置用户目录

Selenium在启动浏览器时,默认会使用一个新的用户数据目录(profile),这意味着它不会加载浏览器中的现有数据(如Cookies、书签等)。如果需要加载特定的用户数据目录,可以通过设置ChromeOptions的user-data-dir参数来实现。

  1. 在代码中设置用户目录位置
    • 通过创建ChromeOptions对象,并使用add_argument方法添加--user-data-dir参数来指定用户数据目录的路径。

示例代码:

python 复制代码
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--user-data-dir=/path/to/your/profile')
driver = webdriver.Chrome(options=options)
  • 注意:请将'/path/to/your/profile'替换为你想要加载的用户数据目录的实际路径。这个路径应该是一个已经存在的目录,Selenium将在这个目录中查找和保存用户数据。

10.7.4 带插件启动

py 复制代码
option = webdriver.ChromeOptions()
option.add_extension('D:\谷歌方案\IE_Tab_for_Chrome-10.5.10.1.crx')  # 自己下载的crx路径
driver = webdriver.Chrome(chrome_options=option)
driver.get("chrome-extension://hehijbfgiekmjfkfjpbkbammjbdenadd/nhc.htm#url=http://10.190.32.54:7001/default/index.jsp")  # 利用浏览器对象打开网页地址
相关推荐
用户69371750013842 小时前
Google 正在“收紧侧加载”:陌生 APK 安装或需等待 24 小时
android·前端
蓝帆傲亦2 小时前
Web 前端搜索文字高亮实现方法汇总
前端
用户69371750013842 小时前
Room 3.0:这次不是升级,是重来
android·前端·google
qq_417695054 小时前
机器学习与人工智能
jvm·数据库·python
漫随流水4 小时前
旅游推荐系统(view.py)
前端·数据库·python·旅游
yy我不解释4 小时前
关于comfyui的mmaudio音频生成插件时时间不一致问题(一)
python·ai作画·音视频·comfyui
踩着两条虫5 小时前
VTJ.PRO 核心架构全公开!从设计稿到代码,揭秘AI智能体如何“听懂人话”
前端·vue.js·ai编程
紫丁香6 小时前
AutoGen详解一
后端·python·flask
FreakStudio6 小时前
不用费劲编译ulab了!纯Mpy矩阵micronumpy库,单片机直接跑
python·嵌入式·边缘计算·电子diy
jzlhll1236 小时前
kotlin Flow first() last()总结
开发语言·前端·kotlin