簡體   English   中英

找出通過watir-webdriver保存的Firefox文件的名稱

[英]finding out name of file Firefox saved via watir-webdriver

考慮到Firefox現在可以工作的方式,無論watir-webdriver 以完全非交互/非GUI的方式遇到哪種類型的鏈接,重定向或mime類型,都watir-webdriver指定“ 另存為”文件名。

找出剛剛保存的文件名的簡單方法可能是什么?

希望它比“檢測目錄中創建的最新文件”更可靠,因為我必須同時使用同一文件夾的獨立進程,包括其他Web驅動程序。

使用此方法可在配置文件中設置無提示下載(盡可能使用許多可預見的文件類型): 帶有watir webdriver的Firefox 4:需要使用helperApps.neverAsk進行幫助以保存CSV而不提示您

在我的設置中,一個Bash腳本調用Ruby,該腳本執行watir-webdriver的工作,啟動瀏覽器等,然后退出並返回Bash進程。 我更喜歡Ruby是否立即學會了它剛剛保存的文件名,因為有了它的env,它最清楚地知道了我想如何重命名該文件,而不是將其留給一些怪異的lsof / strace來找出事后驗屍。 但是無論如何。

UPDATE

既然答案似乎不是真的,那么誰能建議一個簡短的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 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM