找出 Firefox 通过 watir-webdriver 保存的文件名
-
29-10-2019 - |
题
考虑到 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
其他提示
当测试运行开始时,使用当前日期时间作为名称的一部分创建一个目录怎么样?如果后续操作需要知道文件的放置位置,您也可以将其写入环境变量
然后,当某些内容必须写出文件时,请使用测试或步骤的名称,或者其他可以让您追溯到写出文件的内容的名称。或者只是一个递增的数字,并让它创建某种日志文件,告诉您每个数字是什么,或者创建它的原因等。
不隶属于 StackOverflow