You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Selenium Chrome WebDriver添加多个浏览器扩展?

如何为Selenium Chrome WebDriver添加多个扩展?

嘿,我明白你遇到的问题啦!chrome_options.add_extension()这个方法一次只能接收一个扩展文件的路径参数,你直接用逗号把多个路径传进去,肯定会触发参数不匹配的错误~

错误原因分析

你尝试的写法:

chrome_options.add_extension(r'C:\Users\Administrator\Desktop\chromedriver_win32\extension.crx',r'C:\Users\Administrator\Desktop\chromedriver_win32\extension1.crx',r'C:\Users\Administrator\Desktop\chromedriver_win32\extension3.crx')

这个写法是不对的,因为add_extension()的方法定义只允许传入一个路径参数,多传就会报错。

正确的解决方法

要添加多个扩展,只需要多次调用add_extension()方法,每个扩展对应一次调用就行。如果你的扩展数量比较多,也可以把路径放到列表里,用循环来批量添加,这样代码更整洁。

方法1:多次调用add_extension()

直接给每个扩展单独调用一次方法,像这样:

chrome_options.add_extension(r'C:\Users\Administrator\Desktop\chromedriver_win32\extension.crx')
chrome_options.add_extension(r'C:\Users\Administrator\Desktop\chromedriver_win32\extension1.crx')
chrome_options.add_extension(r'C:\Users\Administrator\Desktop\chromedriver_win32\extension3.crx')

方法2:用循环批量添加(适合多扩展场景)

把所有扩展路径放到一个列表里,然后循环调用方法:

extension_paths = [
    r'C:\Users\Administrator\Desktop\chromedriver_win32\extension.crx',
    r'C:\Users\Administrator\Desktop\chromedriver_win32\extension1.crx',
    r'C:\Users\Administrator\Desktop\chromedriver_win32\extension3.crx'
]
for path in extension_paths:
    chrome_options.add_extension(path)

修改后的完整代码

我把你的原有代码修改成支持多扩展的版本,你可以直接用:

import os
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from time import gmtime, strftime
from os import system
import pyperclip
import datetime
import time
import sys

executable_path = r"C:\Users\Administrator\Desktop\chromedriver_win32\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = executable_path
chrome_options = Options()

# 添加多个扩展:每个扩展单独调用add_extension
chrome_options.add_extension(r'C:\Users\Administrator\Desktop\chromedriver_win32\extension.crx')
chrome_options.add_extension(r'C:\Users\Administrator\Desktop\chromedriver_win32\extension1.crx')
chrome_options.add_extension(r'C:\Users\Administrator\Desktop\chromedriver_win32\extension3.crx')

driver = webdriver.Chrome(executable_path=executable_path, chrome_options=chrome_options)
time.sleep(4)
driver.get("https://www.tradingview.com/chart/gK6Rq0UH/")
time.sleep(4)
driver.find_element_by_xpath("""//*[@id="footer-chart-panel"]/div[2]/span[4]""").click()
time.sleep(4)
while True:
    driver.find_element_by_xpath("""//*[@id="bottom-area"]/div[2]/div[1]/div[2]/ul/li[4]""").click()
    time.sleep(4)
    driver.switch_to_alert().accept()
    contents = pyperclip.paste()
    time.sleep(2)
    filepath = r"C:\Users\Administrator\Desktop\DATA.txt"
    time.sleep(2)
    with open(filepath, 'w') as f: # 'w' means write mode and we get the file object as f
        f.write(contents)

这样修改后,你的Chrome WebDriver就能正常加载多个扩展啦~

内容的提问来源于stack exchange,提问作者abudabi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:15:15