Wie fill_in datepicker mit Capybara, Rails, MiniTest spec

8

Ich habe einen form_tag, der den folgenden HTML-Code generiert:

%Vor%

Das obige ist ALL des generierten HTML. Ich habe alle Partials und Layouts entfernt, um zu versuchen, das Debuggen dieses Problems so einfach wie möglich zu machen.

Die Datepicker-Felder rufen jquery UI Datepicker auf.

Ich möchte Javascript für meinen Test vermeiden und einfach die Datumsfelder mit Textdaten ausfüllen. Ich habe fill_in "datepicker_mini", :with => "01/01/2010" ausprobiert, aber obwohl es den Test nicht zum Scheitern bringt, füllt es auch nicht das Feld aus, wenn ich save_and_open_page zum Testen verwende.

Aktualisierung: TEST CODE

%Vor%

Jede Hilfe wird sehr geschätzt.

Danke.

    
Marklar 17.04.2013, 02:28
quelle

4 Antworten

19

Ich hatte das gleiche Problem. Nach dem Lesen der Dokumentation von Capybara, war meine Lösung, page.execute_script () zu verwenden, um einen Wert direkt auf die Eingabe zu setzen.

%Vor%

Das ist ein bisschen dreckig, denke ich, aber arbeite für mich.

Gotchas:

  • Ich habe Selenium verwendet.
  • Ich führe das Beispiel mit js: true
  • Ich habe ein Plugin namens zebra verwendet, um die Datumsauswahl zu erzeugen, aber das Prinzip ist das gleiche.

Edit: Das funktioniert auch für Poltergeist

    
Armando 15.09.2013 02:27
quelle
5

Ich mag diese Lösung:

%Vor%

Aufgenommen von Ссылка

    
freemanoid 24.07.2014 17:16
quelle
4

Wenn Sie die UI-Klicks simulieren möchten, funktioniert dies für mich (mit einem Javascript-Treiber).

Wenn die ID meines Datumsempfängers "target_date" ist, wird zum nächsten Monat navigiert und dann der 15. ausgewählt.

%Vor%     
Zap Brannigan 29.04.2016 15:47
quelle
0

Die obige Lösung hat bei mir nicht funktioniert. Vielleicht, weil es kein Eingabefeld für die Anwendung gibt, für die ich Tests schreibe. Meine Lösung ist viel hässlicher, aber es wählt Daten aus und verifiziert die Auswahl in einem Datepicker, der nur GUI ist.

%Vor%     
Gabriel Pumple 23.01.2015 17:00
quelle