Python / Selenium - 清除chrome webdriver中的缓存和cookie?

时间:2018-05-21 21:21:47

标签: python selenium selenium-webdriver webdriver selenium-chromedriver

我正在尝试清除Chrome浏览器中的缓存和cookie(来自selenium的webdriver),但我找不到任何专门针对Chrome驱动程序的解决方案。如何清除Python中的缓存和cookie?谢谢!

3 个答案:

答案 0 :(得分:9)

取自this post

对于Cookie,您可以使用delete_all_cookies功能:

driver.delete_all_cookies()

对于缓存,没有直接的方法通过Selenium来做到这一点。如果您尝试确保在启动Chrome驱动程序开始时清除所有内容,或者在完成后清除,则无需执行任何操作。每次初始化webdriver时,它都是一个没有缓存,cookie或历史记录的全新实例。每次终止驱动程序时,所有这些都被清除。

答案 1 :(得分:0)

在第一步=>

pip install keyboard

step2:在您的代码中使用它=>

from time import sleep
self.driver.get('chrome://settings/clearBrowserData')
sleep(10)
keyboard.send("Enter")

答案 2 :(得分:0)

2020年11月使用Selenium清除Chromedriver的缓存:

使用此功能可打开一个新标签页,选择删除所有内容,确认并返回到先前处于活动状态的标签页。

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome("path/to/chromedriver.exe")

def delete_cache():
    driver.execute_script("window.open('');")
    time.sleep(2)
    driver.switch_to.window(driver.window_handles[-1])
    time.sleep(2)
    driver.get('chrome://settings/cleardriverData')
    time.sleep(2)
    actions = ActionChains(driver) 
    actions.send_keys(Keys.TAB * 3 + Keys.DOWN * 3) # send right combination
    actions.perform()
    time.sleep(2)
    actions = ActionChains(driver) 
    actions.send_keys(Keys.TAB * 4 + Keys.ENTER) # confirm
    actions.perform()
    time.sleep(5) # wait some time to finish
    driver.close() # close this tab
    driver.switch_to.window(driver.window_handles[0]) # switch back
delete_cache()