没有缓存的硒铬驱动程序

时间:2017-10-17 13:12:06

标签: javascript python google-chrome selenium caching

也许有人知道如何在不使用浏览器缓存的情况下浏览Chrome? 我在循环中运行使页面处于隐身模式并且不关闭浏览器。但似乎它使用缓存,因为浏览器没有关闭。

chrome_options.add_argument("--incognito")
chrome_options.add_argument("--headless")
chrome_options.add_argument("--disable-extensions")
chrome_options.add_argument("--disable-java")

driver = webdriver.Chrome(chrome_options=chrome_options)
i = 1
while i < 10:
    driver.get('https://selenium.com') 
browser.quit()

3 个答案:

答案 0 :(得分:0)

每次导航到其他页面时都应尝试使用以下内容。

driver.manage().deleteAllCookies();

或者你只需​​浏览chrome本身的缓存页面,然后点击“清除浏览数据”按钮。

chrome://settings/clearBrowserData

答案 1 :(得分:0)

您还可以将 Chrome - disable-application-cache 参数一起使用,这相当于&#34;私密模式&#34;

答案 2 :(得分:0)

我知道该帖子很旧,但是对于那些在2020年之后的人来说,他们正在寻找可以通过BrowserMob(BrowserUP)代理本身实现的解决方案(所有浏览器,不仅是Chrome)-您可以为请求和响应设置规则会删除与浏览器中的缓存机制相关的标头(很多)。以下是我使用的脚本(它们可能不完整,因此,如果您发现缺少的内容,请告知):

请求:

curl --location --request POST 'your_proxy_api_host:your_proxy_api_port/proxy/your_proxy_port/filter/request' \
--header 'Content-Type: text/plain' \
--data-raw 'request.headers().remove('\''If-Modified-Since'\'');request.headers().remove('\''If-None-Match'\'');'

响应:

curl --location --request POST '0.0.0.0:8080/proxy/8081/filter/response' \
--header 'Content-Type: text/plain' \
--data-raw 'response.headers().remove('\''Age'\'');response.headers().remove('\''ETag'\'');response.headers().remove('\''Cache-Control'\'');response.headers().remove('\''Expires'\'');response.headers().remove('\''Last-Modified'\'');response.headers().remove('\''Vary'\'');response.headers().add('\''Expires'\'', 0);response.headers().add('\''Cache-Control'\'', '\''private'\'');response.headers().add('\''Cache-Control'\'', '\''no-cache'\'');response.headers().add('\''Cache-Control'\'', '\''no-store'\'');response.headers().add('\''Cache-Control'\'', '\''must-revalidate'\'');response.headers().add('\''Vary'\'', '\''*'\'');'

我使用http 1.1,所以没有为http 1.0或http 2.0添加任何内容。在Chrome Edge Safari FF上检查。 另外,我使用了一点代理api(browsermob的新api)-用于reference