2012-03-26 18 views
4

Ich mache Hausaufgaben und muss überprüfen, ob die HTML-Tabellenspalte Text angegeben hat. Ich habe ein Beispiel aus web_steps.rb kopiert und versucht, es an meine Bedürfnisse anzupassen, aber der Test schlägt fehl. Schritt:Wie überprüft man, ob in der Tabellenspalte Text angegeben wurde?

And I should not see 'G' 

Step-Definition, die fehlschlägt:

Then /^(?:|I)should not see '([^']*)'$/ do |text| 
    save_and_open_page 
    if page.respond_to? :should 
    page.find('#movies').should have_no_content(text) 
    else 
    assert page.find('#movies').has_no_content?(text) 
    end 
end 

Fehler ist:

erwartet #has_no_content ("G") true zurück, bekam falsche (RSpec?: : Erwartungen :: ExpectationNotMetError) ./features/step_definitions/movie_steps.rb:35:in /^(?:|I)should not see '([^']*)'$/' features/filter_movie_list.feature:37:in Und ich sollte 'G' '

nicht sehen

Filme ist ID der Tabelle.

Tabelle wie folgt aussieht: enter image description here

ich hier steckte und nicht weiter gehen kann. Kann mir jemand einen Hinweis geben, um dieses Problem zu lösen?

Antwort

4

können Sie versuchen, mit:

assert page.find('#movies').has_no_content?(">#{text}<") 
+1

Danke, es funktioniert. Es funktioniert sogar mit 'assert page.find ('# filme'). Has_no_content? (" # {text} ")' –

1

Nun der Grund, warum es scheitert, ist, weil es das Kapital G in "PG" sieht. Grundsätzlich, was Sie wollen, ist keine TD-Zelle unter der "Rating" -Spalte mit einem G-Rating zu sehen, oder? Was Sie verwenden möchten, ist XPath in Ihrem Schritt, um in die TDs zu drillen und zu überprüfen, dass die ganze Zelle Ihren Text enthält/nicht enthält.

+0

ich XPath wissen nicht sehr gut. Könnte es anders gemacht werden? –

Verwandte Themen