2011-07-03 60 views
1

我正在使用Watir在網站上執行一些操作,並最終爲我提供保存某個文件的提示。我想要做的是按照提示自動,並自動保存文件。使用Watir在Ruby中保存文件對話框/提示

從我所看到的,使用win32ole有一些功能來執行這些操作。我已成功安裝了寶石通過

gem install win32ole-pp 

並要求win32ole沒有問題。然而,當我打電話說

ai = WIN32OLE.new("AutoItX3.Control") 

我收到的錯誤:

unknown OLE server: `AutoItX3.Control' 

有一個建議解決這個問題here,但有問題的.dll文件不在正確的文件夾。

所以,我只是想知道是否有另一種方式在Watir做到這一點?或者是否存在針對我遇到的問題的其他解決方案?

謝謝。

+0

你有沒有運行了'AutoItX3.dll'提交Windows搜索?該文件可能不完全是他們在FAQ中說的地方。一旦找到它,可能值得一試,並試用'regsvr32'命令。 – Casper

+0

是的,不幸的是,它沒有出現。謝謝你的想法。 –

+0

奇怪。如何從這裏下載Zip文件:http://www.autoitscript.com/site/autoit/downloads/(在頁面的中途),該DLL位於該包中,您可以使用它。此外,如果你在Win7上也許看看這裏(需要以管理員身份運行):http://rubywithwatir.blogspot.com/2008/06/unknown-ole-server-autoitx3control.html – Casper

回答

0

我用watir和firefox解決了這個問題。 Firefox可以選擇自動保存針對MIME的目標文件類型,而無需在參數化文件夾中提示。的Watir訪問Firefox的參數,可以對其進行修改:

downloadDir = "your-dl-dir" 
profile = Selenium::WebDriver::Firefox::Profile.new 
profile['browser.download.dir'] = downloadDir 
profile['browser.download.folderList'] = 2 
profile['browser.helperApps.neverAsk.saveToDisk'] = 'images/jpeg, application/pdf, application/octet-stream' 
browser = Watir::Browser.new(:firefox, :profile => profile) 

來源:http://elementalselenium.com/tips/2-download-a-file