如何处理Watir :: Exception :: UnknownObjectException:

时间:2014-10-15 20:00:57

标签: ruby watir watir-webdriver

我正在使用watir使用while循环自动删除元素,但是当脚本到达结尾时它会出错,因为while循环所依赖的元素不再可见。反正有没有Watir进行测试?

以下是我的代码示例:

class Delete_element

  def org_roster_remove
    parameters = Tt_parameters.new
    driver = Login.new.log_in(parameters.username3, parameters.password3)
    while driver.a(:data_class, 'home.group.edit_group_btn').visible? == true
      driver.p(:data_class, 'home.conv.messagePreview').hover
      sleep(1)
      driver.div(:class, 'delete').click
      sleep(1)
      driver.a(:data_class, 'home.conv.deleteFromRoster_btn').click
      sleep(1)
    end
    driver.quit
  end
end

这是错误:

  

Watir :: Exception :: UnknownObjectException:无法找到元素,使用{:data_class =>“home.group.edit_group_btn”,:tag_name =>“a”}

1 个答案:

答案 0 :(得分:3)

我会用.present?而不是.visible?

还可以考虑使用.wait_until_visible而不是sleep。见Watir-webdriver Waiting

此外,调查页面对象框架,例如Cheezy's page-object gem