python - firefox 中的文件下载对话框

标签 python selenium

我正在使用 firefox 进行 selenium+python 编程,自动开始下载并保存文件。我已完成所有操作,但无法下载 csv 文件。 我的 python 版本是 2.6.6,我的 selenium 版本是最新版本。 我也尝试使用以下链接(即)

fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir",getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","text/csv")
browser = webdriver.Firefox(firefox_profile=fp)

我用过这个,但我没有得到文件,我也没有收到任何错误。 任何人都请帮助我..

我的文件是![我到了这里,我的下一步是使用 selenium + python 程序下载它][1]

如果有人有解决方案,请帮助我。

最佳答案

这是一个完整的示例,适用于使用 Firefox 3.6.24 和 8.0.1 的我。

#!/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
from selenium import webdriver

profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.dir',"/tmp/webdriver-downloads")
profile.set_preference('browser.download.folderList',2)
profile.set_preference('browser.helperApps.neverAsk.saveToDisk',"text/csv")
driver = webdriver.Firefox(profile)
base_url = "http://localhost/"
driver.get(base_url + "/text.csv")

您确定您的网络服务器正在返回 text/csv 作为 Mime 类型吗?一种验证方法是使用 curl 来确认 HTTP 响应中的 Content-Type header 是否符合您的预期:

$ curl -v http://localhost/text.csv
* About to connect() to localhost port 80 (#0)
*   Trying 127.0.0.1... connected
> GET /text.csv HTTP/1.1
> User-Agent: curl/7.23.1 (x86_64-apple-darwin10.8.0) libcurl/7.23.1 OpenSSL/1.0.0e zlib/1.2.5 libidn/1.22
> Host: localhost
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Wed, 28 Dec 2011 17:10:46 GMT
< Server: Apache/2.2.20 (Unix) mod_ssl/2.2.20 OpenSSL/0.9.8r DAV/2
< Last-Modified: Wed, 28 Dec 2011 17:05:47 GMT
< ETag: "291f98-0-4b52a02cbb0c0"
< Accept-Ranges: bytes
< Content-Length: 0
< Cache-Control: max-age=300
< Expires: Wed, 28 Dec 2011 17:15:46 GMT
< Content-Type: text/csv
< 
* Connection #0 to host localhost left intact
* Closing connection #0

关于python - firefox 中的文件下载对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8656056/

相关文章:

java - 使用 Selenium 循环链接

python - 尝试使用Selenium通过xpath选择元素,但出现错误“无法找到元素”

python - 在 for 循环中读取 csv 文件时出现意外输出

bool 变量驱动代码的 Python 代码可读性

python - pandas 实现不支持 out 参数

python - 简单的网页更改或按钮删除和抓取的数据是无用的

c# - 与列表中的Webdriver元素进行交互

python - 在 Clojure 中遍历数组的惯用方法

Python - 解释函数参数

python - 使用 Selenium 和 Python 单击 Javascript 选项卡,无需唯一的类 ID 或元素名称