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

有什么简单的方法可以找出刚刚保存的文件的名称?

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

使用此方法在配置文件中已设置无提示下载(尽可能使用许多预见的文件类型): 带有 watir webdriver 的 Firefox 4:需要使用 helperApps.neverAsk 来保存 CSV 而不提示的帮助

在我的设置中,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

其他提示

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top