[英]How do I use Watir::Waiter::wait_until to force Chrome to wait?
[英]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.