2017-05-01 7 views
0

ich den ersten Indexwert aus einer Reihe von Elementen im Inneren auf einer Suchergebnisseite @searchresultspage.search_results[0]kann nicht auf das Element klicken, wenn Arraywert zurückgegeben wird

Ich versuche, klicken Sie auf eines der Elemente (Produktname) abrufen Dieser Array-Wert und die folgende Fehlermeldung erhalten.

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

Bitte beachten Sie diesen Code unten, wo ich meine Methoden aufrufen.

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 

Kann jemand Vorschläge machen?

Antwort

0

Pro the SitePrism README, alle elements, die Sie mit einer section verknüpfen möchten, sollte im Abschnitt selbst definiert werden. Sie fügen Ihr :product_name Element in einem page hinzu. Versuchen Sie etwas wie folgt:

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 
+0

Vielen Dank für Ihre schnelle Antwort. Ich habe jedoch Ihre Methode ausprobiert und erhalte den folgenden Fehler. 'undefinierte Methode 'product_name' für # (NoMethodError)'. Ich habe einen Link zu meinem Git Repo hinzugefügt. Bitte schauen Sie [link] (https://github.com/shafiqahmedmalik2010/amazon_test) –

+0

@ShafiqAhmedMalik [Ihr Abschnitt Klassendefinition hat keine Methoden.] (Https: // github .com/shafiqahmedmalik2010/amazon_test/blob/master/features/page_objects/sections/search_results/search_results.rb) – coreyward

+0

Ich habe die Methoden der Sektion class hinzugefügt, bekomme aber jetzt undefinierte Methode 'product_name'' –

Verwandte Themen