查找通过watir网络驱动程序保存的Firefox文件的名称



考虑到Firefox现在的工作方式,无论watir-webdriver以完全非交互式/非GUI的方式遇到的链接、重定向或mime类型,都不可能指定另存为文件名

找到刚刚保存的文件名的简单方法是什么?

希望有比"检测目录中创建的最新文件"更可靠的东西,因为我有独立的进程必须同时使用同一个文件夹,包括其他网络驱动程序。

使用此方法在配置文件中已经设置了无提示下载(尽可能使用许多可预见的文件类型):带有watir网络驱动程序的Firefox 4:需要使用helperApps.never的帮助在不提示的情况下要求保存CSV

在我的设置中,一个Bash脚本调用Ruby,Ruby完成watir网络驱动程序的工作,启动浏览器等,然后退出返回Bash进程。我更希望Ruby能立即学会它刚刚保存的文件名,因为有了它的env,它最清楚我想如何重命名文件,而不是把它交给一些诡异的lsof/strace来处理死后处理。但不管怎样。

更新

既然答案似乎不是真的,有人能建议用Ruby短代码找到保存在目录中的最新文件,检查它是否确实是在最后2秒内写的,并将其重命名为我的变量$acctno.csv吗?

试试这个,但用您的目录名替换Dir.pwd

f = Dir.entries(Dir.pwd).reject{|f|File.ftype(f)!='file'}.sort_by{|f| File.mtime(f)}.last
File.rename(f, "#{$acctno}.csv") if Time.now-File.mtime(f)<2

当测试运行开始时,使用当前日期时间作为名称的一部分来创建一个目录怎么样。如果以后需要知道文件被放在哪里,您也可以将其写入环境变量

然后,当某个东西必须写出一个文件时,使用测试或步骤的名称,或者其他可以让你追溯到写出文件的东西的名称。或者只是一个递增的数字,并让它创建某种日志文件,告诉你每个数字是什么,或者是什么创建的等等。

最新更新