我是 Watir 的新手。
我正在寻找一种方法来检测子程序接收到的对象类型, 以便应用正确的方法。 最终结果应该是这样的:
sub clickOnElement (elementId, elementRef)
element= browser.(elementId.to_sym, elementRef)
case TypeOfElement (element)
:link element.click
:radio element.set
:checkbox element.set
:list ....
end
end
我的问题是关于 TypeOfElement() 的实际实现。
如有任何建议或指示,我们将不胜感激:提前致谢
塞尔吉奥
最佳答案
您可以根据元素变量的类(将其转换为子类型后)进行 case 语句。这样您就不必实现自己的 TypeOfElement 方法。
类似于:
e = browser.element
case e.to_subtype
when Watir::CheckBox
e.set
when Watir::Anchor #Link
e.click
else
raise( e.class.to_s + ' not handled' )
end
注意:
- browser.element 返回第一个元素,它将是 HTML 标记。因此,在上面的 case 语句中会引发异常。我假设 e 会更具体一些。
- 在 case 语句的开头,它只是“e.to_subtype”而不是“e.to_subtype.class”(如 How to catch Errno::ECONNRESET class in "case when"? 中所述)。
关于ruby - watir webdriver 对象类型检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11051387/