2017-06-10 3 views
0

Ich verwende Rails 5.1.1, RSpec 3.5.0 & Capybara 2.7.1.RSpec Problem mit have_css

Ich möchte einen Test haben, der nach einer Navbar auf der Homepage sucht, nach einigen Dokumenten, die ich gefunden habe, sollte ich have_css dafür verwenden. Das Beispiel ist: have_css("input#movie_title")

Mein Verständnis ist, dass dies für einen input-Tag mit der ID MOVIE_TITLE aussehen würde. Ist das korrekt?

Ich versuche, dies in meinem Code: have_css("div.navbar-default")

ich diesen Fehler, aber: Failure/Error: expect(page).to have_css("div.navbar-default") expected to find css "div.navbar-default" but there were no matches

Warum funktioniert das nicht? Ich habe ein div mit der Klasse 'navbar-default', also sollte das so weit funktionieren, wie ich trainieren kann.

Bearbeiten/Gelöst: Ich erkannte meinen Fehler. Ich muss mit Aussagen rechnen, die navbar-default Klasse ist in einem Nav-Tag, nicht ein Div-Tag. Die 2. Anweisung befindet sich in einem Div-Tag, wurde aber aufgrund des Fehlers auf der ersten nicht ausgeführt.

ich es jetzt behoben haben, arbeiten alle

+0

Können Sie das zugehörige div Code posten? – Pavan

+0

@ Pavan erkannte meinen Fehler. Navbar-Standard war in einem Nav-Tag, nicht ein Div-Tag. Ich habe ein anderes have_css darunter, das _was_ in einem div war, aber es kam nicht zum wegen des 1. Fehlers. Es wurde jetzt behoben – DanBonehill

Antwort

0

Der have_css Matcher an dem Behälter Mutter angewendet wird anstelle des eigentlichen Element. Gibt es einen Eltern-Container?

versuchen, etwas wie folgt aus:

# Find the parent 
parent = page.find('div#nav') 
# Check for the nested div 
expect(parent).to have_css(".navbar-default")