Automation 页面加载失败时重新加载watir webdriver

Automation 页面加载失败时重新加载watir webdriver,automation,watir-webdriver,Automation,Watir Webdriver,我正在自动化一个过程,其中包括加载许多页面并将表单字段值从这些页面复制到其他页面 有时,页面最初无法加载,但会成功重新加载。 是否有一个内置机制让watir webdriver执行此操作?。请注意,我提出的问题与此不同: 就我而言,我不是在失败后继续前进。在“开始/救援”中包装我的所有单击操作,并在“救援”中重新加载可能会起作用,我只是想知道这个问题是否有内置解决方案 我不认为有一个内置的机制可以做到这一点,我通常会这样做 创建接受块的可重试块方法。可能是这样的: require 'timeo

我正在自动化一个过程,其中包括加载许多页面并将表单字段值从这些页面复制到其他页面

有时,页面最初无法加载,但会成功重新加载。 是否有一个内置机制让watir webdriver执行此操作?。请注意,我提出的问题与此不同:


就我而言,我不是在失败后继续前进。在“开始/救援”中包装我的所有单击操作,并在“救援”中重新加载可能会起作用,我只是想知道这个问题是否有内置解决方案

我不认为有一个内置的机制可以做到这一点,我通常会这样做

创建接受块的可重试块方法。可能是这样的:

require 'timeout'

def retriable(num_retries = 0, timeout = 5, &block)
  Timeout.timeout(timeout) do
    block.call
  end
rescue Timeout::Error => e
  if num_retries <= 0
    raise e
  else
    puts "Request timed out. Trying #{num_retries} more times"
    num_retries -= 1
    retry
  end
end
retries = 3
timeout_before_retry = 10 # seconds
retriable(retries, timeout_before_retry) do
  browser.goto("http://google.com")
end