使用Selenium和python将文件下载到指定位置

好的,到目前为止,我的编程已经转到我要从中下载链接并选择链接的网站,然后出现了Firefox对话框,我不知道该怎么办。我想将此文件保存到桌面上的文件夹中。我正在使用它进行每晚构建,因此我需要它来工作。请帮忙。

这是我的代码,可从网站上获取下载链接:

driver = web driver.Firefox()

driver.implicitly_wait(5)

driver.get("Name of web site I'm grabbing from")

driver.find_element_by_xpath("//a[contains(text(), 'DEV.tgz')]".click()

回答:

您需要Firefox自动保存此特定文件类型。

这可以通过设置browser.helperApps.neverAsk.saveToDisk首选项来实现:

from selenium import webdriver

profile = webdriver.FirefoxProfile()

profile.set_preference("browser.download.folderList", 2)

profile.set_preference("browser.download.manager.showWhenStarting", False)

profile.set_preference("browser.download.dir", 'PATH TO DESKTOP')

profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/x-gzip")

driver = webdriver.Firefox(firefox_profile=profile)

driver.get("Name of web site I'm grabbing from")

driver.find_element_by_xpath("//a[contains(text(), 'DEV.tgz')]").click()

更多说明:

  • browser.download.folderList告诉它不要使用默认Downloads目录
  • browser.download.manager.showWhenStarting 轮流显示下载进度
  • browser.download.dir 设置下载目录
  • browser.helperApps.neverAsk.saveToDisk 告诉Firefox自动下载所选文件 mime-types

您可以about:config在浏览器中查看所有这些首选项。这里还有一个非常详细的文档页面:About:config

entry。

此外,xpath我将使用find_element_by_partial_link_text()

driver.find_element_by_partial_link_text("DEV.tgz").click()

以上是 使用Selenium和python将文件下载到指定位置 的全部内容, 来源链接: utcz.com/qa/434459.html

回到顶部