我有一个方法,等待使用Watir启动chrome下载。但是,我想简化并重新指定它,直到它只检查目录大小是否增加。我假设这将要求我在块的开头保存目录的大小,然后等待Dir大小等于该数字+ 1.
def wait_for_download
dl_dir = Dir["#{Dir.pwd}/downloads/*"].to_s
Watir::Wait.until { !dl_dir.include?(".crdownload") }
end
答案 0 :(得分:0)
这只是您可以在初始化程序或其他任何内容中添加的几个函数。
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
Haven未经过测试,但似乎功能正常
您也可以轻松地将其编码为watir本身