How to handle Watir::Exception::UnknownObjectException:
我正在使用 watir 来使用 while 循环自动删除元素,但是当脚本到达末尾时,它会出错,因为 while 循环所依赖的元素不再可见。无论如何要让 Watir 继续进行测试吗?
这是我的代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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: unable to locate element, using {:data_class=>"home.group.edit_group_btn", :tag_name=>"a"}
我会使用 .present?而不是 .visible?
还可以考虑使用 .wait_until_visible 而不是hibernate。请参阅 Watir-webdriver 等待。
另外,研究一个页面对象框架,例如 Cheezy 的页面对象 gem