gpt4 book ai didi

Ruby/Watir-Webdriver - 下载后无法访问文件

转载 作者:数据小太阳 更新时间:2023-10-29 08:33:27 24 4
gpt4 key购买 nike

我正在研究从网站下载文件并将其添加到文件夹的测试场景。对于下载部分,我使用了 browser-downloads 中描述的代码Watir 文档中的页面。我在等待文件下载的时候测试遇到的主要问题:

    def verify_csv_file_exists
path = Dir.getwd + "/downloads/"
until File.exist?("#{path}*.csv") == true
sleep 1
end
end

在运行测试时,上面的过程不会停止,因为它看不到目录中的文件,尽管文件已下载。

有谁知道我该如何处理这种情况?

谢谢。

最佳答案

您只需在下载文件之前检查目录内容,然后等到有新文件添加到目录(通过比较当前内容和以前的内容)。这是您获取新文件名的方式:

这应该可以完成工作:

require 'watir-webdriver'

file_name = nil
download_directory = "#{Dir.pwd}/downloads"
download_directory.gsub!("/", "\\") if Selenium::WebDriver::Platform.windows?
downloads_before = Dir.entries download_directory

profile = Selenium::WebDriver::Firefox::Profile.new
profile['browser.download.folderList'] = 2 # custom location
profile['browser.download.dir'] = download_directory
profile['browser.helperApps.neverAsk.saveToDisk'] = "text/csv,application/pdf"

b = Watir::Browser.new :firefox, :profile => profile

b.goto 'https://dl.dropbox.com/u/18859962/hello.csv'

30.times do
difference = Dir.entries(download_directory) - downloads_before
if difference.size == 1
file_name = difference.first
break
end
sleep 1
end
raise "Could not locate a new file in the directory '#{download_directory}' within 30 seconds" if not file_name
puts file_name

关于Ruby/Watir-Webdriver - 下载后无法访问文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11047633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com