Python Selenium:尝试下载文件时无法忽略Save Dialog

时间:2017-07-11 07:54:47

标签: python selenium selenium-webdriver web-scraping selenium-firefoxdriver

我的脚本在 Python 3.6 Selenium 2.48 Firefox 41 上运行(无法升级,我正在使用公司)

我想使用Python和Selenium Webdriver从网站下载一些XML文件。我使用Firefox配置文件来避免对话框框架并将文件保存在特定位置。

Sub Demo()
    Dim targetRange As Range, sourcerange As Range
    Set sourcerange = Range("B1:B2") 'Works
    Set targetRange = sourcerange.Offset(0, 1)
    Debug.Print targetRange.Address
End Sub

程序会找到所有可下载的链接(已测试:工作

profile = webdriver.firefox.firefox_profile.FirefoxProfile()
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.panel.shown", False)
profile.set_preference("browser.download.dir", dloadPath)
profile.set_preference("browser.helperApps.neverAsk.openFile","application/xml,text/xml")
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/xml,text/xml")
browser = webdriver.Firefox(firefox_profile=profile)

要下载文件,我使用Selenium的get()

links = []
elements = browser.find_elements_by_xpath("//a[contains(@href,'reception/')]")
for elem in elements:
    href = elem.get_attribute("href")
    links.append(href)
return links

我正在寻找的文件有一个非常具体的网址,意味着我无法使用请求 urllib (2或3),我需要登录到网站并通过它导航,可以使用这些模块。

网址如下:

  

https://www.example.com/cft/cft/reception/filename.xml?user=xxxxxxxx&password=xxxxxxxx

这是html链接:

browser.get(fileUrl)

使用我的脚本,我可以访问该网站,浏览它但是当我得到文件URL时,会弹出对话框,没有我找到的原因。

该脚本在其他网站上运行良好,我认为问题是网址。

感谢您的帮助

0 个答案:

没有答案