如何使用ruby在页面上查找元素

时间:2014-05-29 09:53:50

标签: ruby find element page-object-gem

我使用Ruby的PageObject进行测试并拥有一个元素

button(:showLocs,:title=>"Show All Items")

在我的网页课程中。

我应该用什么方法检查该页面是否包含此对象? 我认为它应该看起来像

if self.showLocs_element.find then #doing smth

2 个答案:

答案 0 :(得分:1)

如果您使用带有Watir的PageObject,您可以使用.exists检查对象是否存在?对象的方法。另外,还有.visible? (如果对象同时是.present?和.displayed?在页面上,则返回true)以及.present?和.displayed?方法本身,如果您想在测试中获得更多粒度。我将在下面总结,以确保这一切都有意义。

watir_element.exists?  #=> returns true if the element exists
watir_element.visible? #=> returns true if the element is visible on the page
watir_element.present? #=> returns true if the element exists & is visible on the page

我肯定会在你学习的时候建议在GitHub上为Watir Cheat Sheet添加书签,因为它有助于解决你遇到的一些常见问题以及Watir Wiki。最后,Watir Webdriver.com也有很多可靠的资源。

答案 1 :(得分:1)

button accessor创建了三个方法 - 一个用于单击按钮,另一个用于返回按钮元素,另一个用于检查按钮的存在。文档中的示例是:

button(:purchase, :id => 'purchase')
# will generate 'purchase', 'purchase_element', and 'purchase?' methods

在您的特定情况下,这意味着您可以使用以下方法检查按钮是否存在:

showLocs?

所以你的if声明可能是:

if showLocs?
  #doing smth
end