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

Selenium启动Chrome版本与本地不一致,无法清除本地浏览器历史

问题描述

我尝试通过Selenium自动化清除Chrome浏览器历史,但发现Selenium启动的Chrome实例与日常使用的本地Chrome不同。手动打开本地Chrome时浏览历史仍存在,而Selenium启动的实例无历史记录且不缓存访问过的网站,我需要实现清除本地Chrome的历史记录。

当前使用代码
from selenium import webdriver
import undetected_chromedriver as UC
import time
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains

# Start Chrome browser
CHROMEDRIVER = UC.Chrome() 


def start_driver():
    driver = UC.Chrome()
    delete_cache(driver)
    return driver


def delete_cache(driver):
    driver.execute_script("window.open('')")  # Create a separate tab than the main one
    driver.switch_to.window(driver.window_handles[-1])  # Switch window to the second tab
    driver.get('chrome://settings/clearBrowserData')  # Open your chrome settings.
    perform_actions(driver, Keys.TAB + Keys.ENTER)  # Tab to the time select and key down to say "All Time" then go to the Confirm button and press Enter
    
    time.sleep(2)
    driver.close()  # Close that window
    driver.switch_to.window(driver.window_handles[0])  # Switch Selenium controls to the original tab to continue normal functionality.


def perform_actions(driver, keys):
    actions = ActionChains(driver)
    actions.send_keys(keys)
    time.sleep(2)
    print('Performing Actions!')
    actions.perform()


if __name__ == '__main__':
    driver = start_driver()
解决方案

Selenium默认会创建临时Chrome用户数据目录,因此操作的不是本地日常使用的Chrome环境。要清除本地Chrome历史,需让Selenium加载本地Chrome的用户数据目录。

步骤1:获取本地Chrome用户数据目录路径

  • Windows:C:\Users\<你的用户名>\AppData\Local\Google\Chrome\User Data
  • macOS:~/Library/Application Support/Google/Chrome
  • Linux:~/.config/google-chrome

步骤2:修改代码加载本地用户数据

替换启动Chrome的逻辑,添加用户数据目录参数,调整清除操作的按键序列以适配实际界面:

from selenium import webdriver
import undetected_chromedriver as UC
import time
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains

def start_driver():
    # 配置Chrome选项,加载本地用户数据目录
    options = webdriver.ChromeOptions()
    # 替换为你自己的用户数据路径,以下是Windows示例
    options.add_argument(r"user-data-dir=C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data")
    # macOS示例:options.add_argument(r"user-data-dir=/Users/你的用户名/Library/Application Support/Google/Chrome")
    # Linux示例:options.add_argument(r"user-data-dir=/home/你的用户名/.config/google-chrome")
    
    # 启动带本地用户数据的Chrome
    driver = UC.Chrome(options=options)
    delete_cache(driver)
    return driver

def delete_cache(driver):
    driver.execute_script("window.open('')")
    driver.switch_to.window(driver.window_handles[-1])
    driver.get('chrome://settings/clearBrowserData')
    
    # 执行清除操作的按键序列,适配Chrome设置界面
    actions = ActionChains(driver)
    # Tab切换到时间范围下拉框,选择"所有时间"
    actions.send_keys(Keys.TAB * 3)
    actions.send_keys(Keys.DOWN)
    # Tab切换到清除数据按钮并点击
    actions.send_keys(Keys.TAB * 5)
    actions.send_keys(Keys.ENTER)
    actions.perform()
    
    time.sleep(3)
    driver.close()
    driver.switch_to.window(driver.window_handles[0])

if __name__ == '__main__':
    driver = start_driver()

注意事项

  • 运行脚本前必须完全关闭本地Chrome,否则会提示用户数据目录被占用
  • 替换路径中的<你的用户名>为实际系统用户名
  • 若按键序列失效,可手动在Chrome设置界面数Tab键次数调整适配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 10:52:29