我可以通过以下方式处理异常吗?

时间:2015-12-29 05:03:17

标签: ruby watir

我正在使用watir自动化网站测试,因为服务器太忙而且反弹很多,有时我会得到"Element is no longer valid"例外。

以下代码是否会起作用?

def click_button(what, how)
 begin
  @browser.button(what=>how).click
  rescue=>exception
  if exception.eql? 'Element is no longer valid'
   click_button(what, how)
  else
   fail_report("Unable to click, '#{exception}'")
  end
 end
end

此处fail_report是报告失败步骤的另一种方法。我无法测试它,因为该异常在20-25次运行中会增加一次。

非常感谢帮助。

1 个答案:

答案 0 :(得分:1)

Watir会在点击之前立即自动重新定位元素,因此您的代码不太可能改进任何内容。

  1. 确认您正在执行require 'watir-webdriver'而不是require 'watir'
  2. 确认您使用的是最新版本的watir-webdriver,因为我今年早些时候更新了代码,以改善过时的元素问题。
  3. 确认您未在代码中的任何位置引用Watir.always_locate
  4. 自动重定位不适用于从集合创建的元素。如果您对从集合创建的元素有问题,请告诉我,您还可以执行一些其他操作。