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

Unable to click on element when array value is returned

我从搜索结果页面上的项目数组中检索第一个索引值 @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

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

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

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