2012-01-10 74 views
0

我使用無頭watir-webdriver,我知道一個特定的動作,browser.div.click提示文件下載。我知道當你使用FF時,你可以指定一個文件夾來下載文件,但是我怎樣才能處理無頭文件下載?有沒有辦法指定一個文件夾,或者更好的將它讀入內存?如何使用watir-webdriver處理無頭文件中的文件下載?

任何幫助,將不勝感激。

+0

哇,這是一個艱難的。我可能會在稍後嘗試着看。但本能告訴我這是一個跳過自動化的測試。 – 2012-01-11 17:07:34

+0

我其實不是爲了測試目的而是爲了從JavaScript中編寫的網站獲取信息。我知道watir是爲測試而構建的,但我正在尋找一種與javascript網站交互的方式。機械化沒有這種功能,我無法找到任何其他選項。 – asahi 2012-01-11 20:53:50

+0

然後嘗試使用瀏覽器。如果這不起作用,請嘗試使用專業的抓取工具。祝你好運。 – 2012-01-11 21:52:28

回答

0

我不確定這是否適合測試無頭。怎麼會有無頭腦提示用戶?我想你必須告訴它在哪裏發送文件。這可能是更多的webdriver人的問題,這是他們的基本功能。你可能只需要直接調用它。

該網站是否實現REST接口或直接獲取文件的方式?也許試試cURL或REST-CLient?

如果主要目的只是下載文件,那麼您的第一個挑戰就是看看您是否能夠從網頁代碼中找出文件的URL。如果你可以確定,那麼看一下你可以使用它的cURL gem(或者只是從命令行cURL)來調用一個獲取文件下載的HTTP地址的get,然後將它保存到一個文件或使用它在內存中根據需要

+0

該網站沒有實現直接獲取文件的方式,沒有。基本上,我點擊一個div,我會得到提示下載文件(如果我使用瀏覽器) – asahi 2012-01-14 21:21:53

+0

@shig什麼是div的html?我不認爲你可能很瞭解如何通過http傳輸文件。保存提示來自瀏覽器。 – 2012-01-18 00:08:26

+0

也許我不理解文件傳輸是如何工作的,在這種情況下,我希望能夠提供給我更多的信息。如果我做了類似browser.div(:id,「download-file」)的點擊,那麼如果我使用的是瀏覽器,則會提示瀏覽器下載,但理想情況下我想這樣做。希望這是有道理的。 – asahi 2012-01-18 04:58:49

0

可能的解決方案是更改配置文件設置,以在瀏覽器中顯示二進制內容而不是打開下載對話框。