Selenium获取http响应标头或访问浏览器的下载历史记录

gos*_*som 5 selenium selenium-webdriver

我使用python 2.7和下载的selenium驱动程序

pip install selenium
Run Code Online (Sandbox Code Playgroud)

如何从Web请求中获取http标头.

特别是我单击一个按钮/链接,服务器回复包含csv文件的响应.

如果我可以从http标头获取文件名,那将是非常棒的.

另一种选择是访问浏览器的下载历史记录.

有什么想法可以实现上述目标吗?

Gre*_*reg 4

Selenium 实际上无法做到这一点(捕获网络流量)。我建议使用第三方工具,例如Browser Mob

我不知道您是否可以获得浏览器的下载历史记录...但作为解决方法,您可以将文件下载到空目录,然后将其称为您的下载历史记录。您还可以使用以下命令按下载时间对文件进行排名os.path.getmtime

import os

from selenium import webdriver

fp = webdriver.FirefoxProfile()

fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", "/tmp/empty-dir")
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")

browser = webdriver.Firefox(firefox_profile=fp)
browser.get("http://pypi.python.org/pypi/selenium")
browser.find_element_by_partial_link_text("selenium-2").click()

os.listdir("/tmp/empty-dir")
['selenium-2.44.0.tar.gz']
Run Code Online (Sandbox Code Playgroud)

  • 我在 [source](https://code.google.com/p/selenium/source/browse/py/selenium/) 或 [docs](http:// selenium-python.readthedocs.org/faq.html)。这并不意味着你做不到;但这可能并非微不足道 (2认同)