selenium/python下载问题
在尝试/放弃mechanize之后,我正在尝试使用Selenium和python来自动下载文件。我已经用selenium做了我认为应该做的一切,表单填写了他们应该做的,按钮被点击了,等等。但是我的问题是没有任何东西是下载的。以下是我代码的相关部分(包括firefox配置文件): 。。。selenium/python下载问题,python,selenium,python-2.7,download,Python,Selenium,Python 2.7,Download,在尝试/放弃mechanize之后,我正在尝试使用Selenium和python来自动下载文件。我已经用selenium做了我认为应该做的一切,表单填写了他们应该做的,按钮被点击了,等等。但是我的问题是没有任何东西是下载的。以下是我代码的相关部分(包括firefox配置文件): 。。。 我使用sleep(9.0),因为我只是在等待文件是否需要更多时间下载。我可以看到“提交”按钮在选项卡后突出显示,但之后似乎什么也没有发生。完全迷路了。我在谷歌上搜索了一千次,似乎什么都没找到。一般来说,下载文件
我使用sleep(9.0),因为我只是在等待文件是否需要更多时间下载。我可以看到“提交”按钮在选项卡后突出显示,但之后似乎什么也没有发生。完全迷路了。我在谷歌上搜索了一千次,似乎什么都没找到。一般来说,下载文件选择器是操作系统的一部分,而不是浏览器,所以你不能用selenium控制它。我看到两种解决办法: 1) 设置firefox配置文件设置时,不显示依赖操作系统的对话框。为此,您需要将您的个人资料更改为:
fp.set_preference("browser.download.manager.showWhenStarting",False)
有关此的链接:
2) 更好的解决方案是根本不使用selenium下载该文件。通读这篇优秀的文章:
基本上,这建议在selenium之外下载该文件
编辑:我更改了第二个选项中的链接,因为它已经死了。谢谢您指出这一点。您可以使用urllib进行下载。我正在尝试从建议中执行此操作,但现在我得到一个属性错误:对象没有属性条带,听起来像是来自其他内容1。我检查了解决方案2中给出的链接。我认为它是针对Java而不是python的。2.在打这里之前,我遇到了第1点给出的解决方案。在那里,我再一次无法理解“下载”到底该怎么办。如何在带有url、id和cookies的代码中使用wget?确实,本文是基于Java的,但我认为它的信息独立于编程语言。
elem=browser.find_element_by_class_name('data')
elem.send_keys(Keys.TAB)
elem.send_keys(Keys.TAB)
elem.send_keys(Keys.RETURN)
time.sleep(9.0)
fp.set_preference("browser.download.manager.showWhenStarting",False)