返回数组值时无法单击元素

时间:2017-05-01 18:45:37

标签: ruby-on-rails ruby rspec cucumber capybara

我从搜索结果页面上的项目数组中检索第一个索引值 @searchresultspage.search_results[0]

我试图点击此数组值中的一个元素(产品名称)并获取下面的错误消息。

undefined method `product_name' for #<PageObjects::Sections::SearchResultsPage::SearchResults:0x007f976e8a8380> (NoMethodError)

请在下面的代码中查看我调用方法的地方。

require 'site_prism'
require_relative 'sections/search_results/search_results'

module PageObjects
  class SearchResultsPage < SitePrism::Page

    sections :search_results, 
    PageObjects::Sections::SearchResultsPage::SearchResults, '.s-item-
    container'

    element :product_name, '.a-row a-spacing-none'

      def first_line_item
        search_results[0]
      end

      def choosing_first_line_item
        search_results[0].product_name.click
      end
  end
end

有人可以提供任何建议吗?

1 个答案:

答案 0 :(得分:0)

根据the SitePrism README,您希望与elements关联的任何section都应在该部分中定义。您在:product_name中添加了page元素。尝试这样的事情:

class SearchResultSection < SitePrism::Section
  element :product_name, '.a-row .a-spacing-none'
end

class SearchResultsPage < SitePrism::Page
  sections :search_results, SearchResultSection

  def first_product_name
    search_results.first.product_name
  end
end