2017-02-14 4 views
0

Ich arbeite an einem Gurken-, Rubin-, Capybara- und Siteprism-Projekt und wir definieren die meisten UK-Variablen in einem Siteprism-Seitenobjekt.Ist es möglich, Siteprism-Variablen zu verwenden, um beim Definieren des Seitenobjekts neue Variablen zu definieren?

Gibt es eine Möglichkeit für mich, die Siteprism-Variablen zu verwenden, die ich als Teil der Definition für neue Variablen erstelle?

Zum Beispiel, wenn ich eine siteprim Seite haben, die wie folgt aussieht:

sections :user_container, "#user_container" do 
    sections :address_module, "#address" do 
     element :house_number, "#house_number" 
    end 
end 

Kann ich irgendwie neue Variablen auf der gleichen Pageobject Deklaration definieren, so etwas wie:

element :postcode, :user_container[2].:address_module[1].text 
OR 
element :postcode, ":user_container[2].:address_module[1].text" 
OR 
some other syntax or workaround? 

Danke .

Antwort

0

Aus einem Blick auf site_prisms Code für - https://github.com/natritmeyer/site_prism/blob/master/lib/site_prism/element_container.rb#L33 - man kann sehen, dass alles, was es tut, Methoden auf der Klasse zu definieren ist. Es speichert nicht die Argumente, die an eine beliebige Stelle übergeben werden, auf die später oder in allen vom Benutzer zugänglichen Variablen zugegriffen werden kann. Also, nein, es gibt keine Möglichkeit, sie in anderen element/section-Aufrufen wiederzuverwenden. Was Sie tun können, ist nur Methoden für die Klasse (Seite Objekt), wo Sie auf die Postleitzahl wie

def postcode 
    user_container[2].address_module[1].text 
end 
+0

zugreifen möchten. Danke für die Erklärung wie immer Thomas !, und für die Problemumgehung. Gute Idee :) – mickael

Verwandte Themen