簡體   English   中英

使用對話框從python中的站點下載文件

[英]Working with dialog box to download file from a site in python

我正在嘗試自動化測試網站,該網站有一個要填寫的表單並下載excel表。 數據發布在HTTP請求中。 既然如此 ,我使用urllib2來獲取網址,但是有一個打開/保存對話框彈出來下載工作表。

所以我開始使用selenium來處理這個功能,但是有javascript函數,我無法傳遞值。

這是我面臨的問題,因為日期選擇器使用了calendarDateInput.js,並且使用了它的函數

 <td align="center"><script>DateInput('startDate', true, 'YYYY-MM-DD')</script> </td>

我需要通過selenium傳遞我自己的日期並嘗試這個:

首先我嘗試了

driver.find_element_by_id("endDate_Year_ID").clear()
driver.find_element_by_id("endDate_Year_ID").send_keys("2013")

然后因為它無法正常工作,我使用了javascript

browser.execute_script("document.getElementById('endDate_Year_ID').value = '2013'")

價值沒有得到填充,而且我在這里停留

在mechanize或urllib2中是否有任何其他方法來處理保存文件的對話框或我可以在python中處理javascript的任何其他模塊

我在linux機器上進行此測試,而send_keys不適用於任何網站

任何幫助表示贊賞。 謝謝

繞過對話框並自動下載文件 ,您可以在瀏覽器配置文件中設置此類設置。

如果使用Firefox,您可以嘗試以下設置。 確保將/ path / to / downloads和Content-Type(應用程序/下載,應用程序/八位字節流,text / csv等)設置為

fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.dir", '/path/to/downloads/')
fp.set_preference("browser.download.downloadDir", '/path/to/downloads/')
fp.set_preference("browser.download.defaultFolder", '/path/to/downloads/')
fp.set_preference("browser.helperApps.neverAsk.openFile", "CONTENT-TYPE")
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","CONTENT-TYPE")

然后確保將該配置文件傳遞給您的瀏覽器實例:

mydriver = webdriver.Firefox(firefox_profile=fp)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM