2011-07-03 56 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