2011-04-01 41 views
6

我使用WatiN從多個網站自動進行文件傳輸(EDI交易),不幸的是FTP或任何更自動化的東西都不是一種選擇。對於下載,我使用這個例子的變化:可以在不需要關注的情況下下載文件嗎?

FileDownloadHandler download = new FileDownloadHandler(fullFilename); 
using (new UseDialogOnce(ie.DialogWatcher, download)) 
{ 
    lnkFile.ClickNoWait(); 

    download.WaitUntilFileDownloadDialogIsHandled(15); 
    download.WaitUntilDownloadCompleted(150); 
} 

這工作正常,唯一的問題是,它需要重點。有幾十個文件需要下載,這可能需要一段時間才能完成,這並不罕見。我在遠程會話中運行它,所以我的機器無法使用,但如果有任何方法可以消除對焦需求,它會很方便。

+0

你能解釋一下lnkFile應該是什麼嗎?謝謝! – buzzzzjay 2012-03-15 19:42:08

+1

lnkFile是一個鏈接,在這種情況下,需要單擊以啓動文件下載。假設你的WatiN.Core.IE實例被調用,即你可以實例化lnkFile爲:lnkFile = ie.Link(Find.ById(「download」)); – 2012-03-15 20:30:33

+0

我建立了一個鏈接文件,正如你所建議的,但它仍然不會在IE9中下載該文件。任何其他想法?我應該在鏈接文件中使用除「下載」以外的內容嗎?謝謝! – buzzzzjay 2012-03-15 20:34:52

回答

1

我不能直接與WatiN幫忙,但我知道(從我自己使用它)iMacros for IE或iMacros for Firefox確實不是需要專注於文件下載。您可以通過command line使用開源免費版本,也可以通過COM接口使用商用版本。

請參閱ONDOWNLOAD命令。

+0

看來CLI僅適用於他們的腳本版本?理想情況下,我想要COM接口,因爲我的程序也具有數據庫集成,但目前我的價格太低了。感謝您的信息,但很高興知道有其他選擇! – 2011-04-01 13:43:55

1

而不是Watin,我會使用WebClient類。 http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx

應該能夠使用該類上傳和下載文件。

+0

我只是看着這個,但似乎無法找到處理文件下載對話框的任何方法 - DownloadFile方法可以正常工作,但網站上提供的下載鏈接不是直接鏈接到文件。 – 2011-04-01 14:09:03

+0

噢,鏈接引發一些JS,你需要採取進一步的行動?這確實使事情變得更加複雜。 – Andy 2011-04-01 15:03:09

+0

是的,不幸的是這種情況。 WatiN對於我的所有目標來說都是多才多藝的,這只是對焦點的一個小問題。 – 2011-04-01 15:27:44

相關問題