Ich habe den folgenden Code als Teil eines Tests:Text Validierung auf einer Webseite, in der mehrere Elemente haben das gleiche Label
if page.text.include? "Provide your details"
go_and_enter_details
end
Die Webseite h2
mehrere Elemente markiert hat, einschließlich der, die für den Inhalt überprüft hat wird.
Dieser Fehler wird zurückgegeben:
Ambiguous match, found 3 elements matching css "h2" (Capybara::Ambiguous)
Wie kann erhalten Rubin/Gurke/Capybara zu identifizieren, ob die Seite den Text enthält ich überprüfen müssen?
auf der HTML Je könnte der Lage sein, die [ 'within'] zu verwenden verwenden (http://www.rubydoc.info/github/ Methode jnicklas/capybara/master/Capybara/Session # innerhalb-instance_method), um das Element zu targetieren. – orde
Dieser Fehler kommt nicht von Ihrem 'page.text.include? ... 'line - also gehe ich davon aus, dass es von deiner' go_and_enter_details' Methode kommt? Wenn ja, zeigen Sie diese Methode und genau, woher der Fehler kommt. Auch mit page.text.include? Sie umgehen das Warteverhalten von Capybaras, was zu flockigen Tests auf dynamischen Seiten führen kann. Wenn Sie 'page.has_text 'verwenden? "Gib deine Details an", dann wird Capybara ein wenig warten, um zu sehen, ob der Text auftaucht. Wenn Sie absichtlich das Warteverhalten nicht wollen, dann gewöhnen Sie sich an 'has_text? 'abc', warte: falsch 'um klar zu machen, dass es beabsichtigt ist –