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

标签 selenium selenium-webdriver

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

pip install selenium

如何从网络请求中获取 http header 。

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

如果我能从 http header 中获取文件名,那就太棒了。

另一个选项是访问浏览器的下载历史记录。

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

最佳答案

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

我不知道您是否可以获得浏览器的下载历史记录...但作为解决方法,您可以 download files到一个空目录,然后将其称为您的下载历史记录。您还可以使用 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']

关于Selenium 获取http响应 header 或访问浏览器的下载历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26948670/

相关文章:

selenium - 为 WebDriver 测试禁用 Google Chrome 密码气泡

c# - 如何在静默模式下执行 Selenium Chrome WebDriver?

java - 如何使用 Selenium WebDriver 处理 Excel 下载弹出窗口

java - Selenium Web 驱动程序 - 无法找到元素

java - 迭代网页页 footer 分中的链接 Selenium Java

html - 使用 selenium 抓取网页时缺少 HTML 内容

javascript - 如何在循环异步函数后访问值

python - Selenium:退出Python脚本而不关闭浏览器

javascript - 如何使用Javascript等待元素在Selenium中可交互

python - span 文本不返回 Selenium 唯一元素