可以在PageObject :: Accessors中有一个divs方法,我的解决方法好吗?

时间:2012-10-25 17:50:47

标签: page-object-gem

在页面对象中,我希望以特定方式访问多个div。

这是访问匹配的第一个div:

div(:search_result, id: /rptSearchResults/)

如果在PageObject :: Accessors中存在div,则可以访问多个匹配的div:

divs(:search_result, id: /rptSearchResults/)

到目前为止,我已经尝试过:

visit_page SearchResultsPage do |page|

    #This outputs the first div that matches
    page.search_result_element.div_elements(id: /rptSearchResults/).each { |i| puts i.text }

    #This accesses the page and outputs text in all divs that match
    page.div_elements(id: /rptSearchResults/).each { |i| puts i.text}

end

有人可以建议在页面对象中更好的方法吗?

提前致谢...

1 个答案:

答案 0 :(得分:6)

通过使用您定义多个div divs(:search_result, id: /rptSearchResults/)的方式,您可以按search_result_elements访问元素。

一些例子:

  • 获取第一个div元素 - search_result_elements[0]
  • 获取返回元素的长度 - search_result_elements.length
  • 获取div的文本 - search_result_elements.map(&:text)
  • 从第三个div获取子元素 - search_result_elements[2].element

希望这有帮助!