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

pro*_*ild 4 page-object-gem

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

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

div(:search_result, id: /rptSearchResults/)
Run Code Online (Sandbox Code Playgroud)

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

divs(:search_result, id: /rptSearchResults/)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我尝试过:

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
Run Code Online (Sandbox Code Playgroud)

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

提前致谢...

小智 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

希望这可以帮助!