考虑到 Firefox 现在的工作方式,无论遇到什么类型的链接、重定向或 mime 类型 watir-webdriver
,都不太可能指定另存为文件名以完全非交互/非 GUI 的方式。
有什么简单的方法可以找出刚刚保存的文件的名称?
希望比“检测目录中创建的最新文件”更可靠,因为我有独立的进程,必须同时使用同一文件夹,包括其他网络驱动程序。
使用此方法在配置文件中已设置无提示下载(尽可能使用许多预见的文件类型):Firefox 4 with watir webdriver: Need help using helperApps.neverAsk to save CSV without prompting
在我的设置中,Bash 脚本调用 Ruby,它执行 watir-webdriver 的操作,启动浏览器等,然后退出回到 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
关于ruby - 找出 Firefox 通过 watir-webdriver 保存的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9402468/