如何为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
相关产品推荐
相关产品推荐

