【发布时间】:2020-05-01 00:28:31
【问题描述】:
我正在使用 Watir 制作一个自动化程序,它从文件 links.txt 中读取链接,然后在 chrome 浏览器上一一打开。当打开浏览器及其加载时间需要很长时间时,它会向我显示Net::ReadTimeout。我已尝试营救,如果未获救,请转到列表中的下一个链接。
我已经尝试过这个,但是当 max_retries = 3 时,它再次显示错误。我想让浏览器等待特定的时间,然后如果它仍在加载,请关闭浏览器并转到列表中的下一个链接
file='links.txt'
max_retries = 3
times_retried = 0
n = 0
begin
browser = Watir::Browser.new :chrome
Watir.default_timeout = 1000
rescue Net::ReadTimeout
browser.wait
retry
end
line = File.readlines(file).sample
while n <= 50 do
n+=1
begin
browser.goto "#{line}"
rescue Net::ReadTimeout => error
if times_retried < max_retries
times_retried += 1
puts "Failed to load page, retry #{times_retried}/#{max_retries}"
retry
else
puts "Exiting script. Timeout Loading Page"
exit(1)
end
end
break if n == 50
end
【问题讨论】:
标签: ruby while-loop webdriver watir