簡體   English   中英

如何在Watir wait.until中檢查Dir大小是否發生變化

[英]How to check if Dir size changes during Watir wait.until

我有一種使用Watir等待chrome下載開始的方法。 但是,我想簡化並重新指定它,使其僅檢查目錄大小是否增加。 我假設這將要求我在塊的開頭保存目錄的大小,然后等待Dir大小等於該數字+ 1。

 def wait_for_download
     dl_dir = Dir["#{Dir.pwd}/downloads/*"].to_s
     Watir::Wait.until { !dl_dir.include?(".crdownload") }
 end

這只是可以在初始化器中添加的任何功能。

def get_file_size_in_mb(path)
  File.size(path).to_f / 10240000.0
end

def find_all_files_inside(folder_path)
  Dir.glob("#{folder_path}/**/*")
end 

def calculate_size_of_folder_contents(folder_path)
  mb = 0.0
  find_all_files_inside(folder_path).each do |fn|
    mb += get_file_size_in_mb(fn)
  end# ^ could have used `inject` here
  mb
end

def wait_until_folder_size_changes(folder_path, seconds=2)
  while true
    size0 = calculate_size_of_folder_contents(folder_path)
    sleep seconds
    size1 = calculate_size_of_folder_contents(folder_path)
    break if (size1-size0) > 0
  end
end

尚未測試,但在功能上似乎不錯

您也可以輕松地將其編碼為watir本身

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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