erwarteter css "title" mit Text in Capybara

8

Ich benutze Capybara anstelle von Webrat in Schienen. Ich habe Capybara installiert und benutze gem 'Capybara' in Gemfile. wenn ich

benutze %Vor%

es gibt einen Fehler

%Vor%

Testdatei ist wie folgt:

%Vor%     
vajapravin 22.04.2012, 15:52
quelle

5 Antworten

12

Ich bin mir nicht sicher, welche Version von Edelsteinen Sie verwenden, aber ich stieß auf eine ähnliche Instanz, bei der die Verwendung von: text fehlgeschlagen ist, aber wenn ich: content verwendet hat, hat es den Test bestanden. Ich benutze Schienen 3.2.3, rspec-Schienen 2.9.0, Capybara 1.1.2 und therubyracer Edelsteine ​​auf Ubuntu Lucid Lynx.

Ersetzen Sie

%Vor%

mit

%Vor%     
rbnewb 09.05.2012, 02:48
quelle
4

Das Problem besteht darin, dass Browser die <title> -Tags als unsichtbar behandeln. (Danke DreadPirateShawn für die Verknüpfung mit zu diesem Thema).

Es gibt keinen "sauberen" Weg, um den Titel zu erhalten, aber mit ein bisschen Hack können Sie den Wert des Titels noch testen, indem Sie Folgendes tun:

%Vor%

Verwenden Sie NICHT das :content -Symbol, da in älteren Versionen von Capybara ungültige Tags ignoriert werden und es so aussieht, als wäre Ihr Test bestanden. Die neuere Version wird Ihnen eine nette Fehlermeldung wie:

geben
  

ArgumentError:    Ungültige Schlüssel: content, sollte einer der folgenden sein: text,: visible,: zwischen,: count,: maximum,: minimum

    
Ruben Homs 14.02.2013 11:19
quelle
1

Ich habe ein ähnliches Problem, nur um Sie wissen zu lassen, die Verwendung von: Inhalt wird in Capybara nicht unterstützt, sollte es sein: Text.

Das Problem mit: content ist, dass es von Capybara nicht erkannt wird und dann ignoriert und als BESTANDEN angezeigt wird, aber das ist ein falsches Verhalten.

Wenn Sie also Capybara verwenden, schalten Sie alle: content auf: text, um zu sehen, ob der Test wirklich erfolgreich ist, vielleicht werden Fehler nicht bemerkt.

    
Stoic Alchemist 07.02.2013 19:33
quelle
0

Ich stieß auf die gleichen Probleme. Empirisch das Folgende ist, was ich gefunden habe:

%Vor%

erwartet, dass Ihre HTML-Ausgabe ein Tag wie folgt enthält:

%Vor%

jedoch, wenn Sie Folgendes verwenden: Inhalt statt: Text wie folgt

%Vor%

Dann wird erwartet, dass Ihre HTML-Ausgabe ein Tag wie folgt enthält

%Vor%

Wenn also das resultierende HTML-Rendering <title text="AnyTitle"/> -Tag enthält, sollten Sie Folgendes verwenden: text Andernfalls, wenn das resultierende HTML-Rendering <title>AnyTitle</title> -Tag enthält, können Sie stattdessen: content verwenden.

P.S. Meine Gem-Umgebungen: Capybara-2.0.2, Schienen-3.2.12, rspec-rails-2.12.2, webrat-0.7.3 Wenn Webrat entfernt wird, wird das Schlüsselwort ": conetnt" von Capybara nicht erkannt.

Aber der saubere Weg, es zu reparieren, ist: Webrat loswerden und einen stabilen Capybara-1.1.2 installieren, der in der Gemfile enthalten ist

%Vor%

Siehe Prusswans Antwort

    
Paul Wang 03.03.2013 20:36
quelle
0

Mach einfach folgendes:

%Vor%     
solnic 20.08.2014 10:54
quelle

Tags und Links