Ich habe ein Feld mit einem richtigen Etikett, das ich problemlos mit Capybara ausfüllen kann:
fill_in 'Your name', with: 'John'
Ich möchte den Wert überprüfen, bevor ich ihn ausfülle, und kann ihn nicht herausfinden.
Wenn ich nach fill_in
der folgenden Zeile hinzufüge :
find_field('Your name').should have_content('John')
Dieser Test schlägt fehl, obwohl die Füllung kurz zuvor funktioniert hat, wie ich durch Speichern der Seite überprüft habe.
Was vermisse ich?
.value
bisschen gefehlt . Vielen Dank!find_field
andereNode::Finders
verwendet, um Knoten zu finden und Aktionen für sie auszuführen, anstatt sie zu erwarten. Natürlich ist dies keine Regel, aber für etwas Einfaches ist es eine bessere Idee, mit der eingebauten Lösung zu arbeiten. Nur sagen!Eine andere hübsche Lösung wäre:
oder
beziehungsweise.
Siehe auch die Referenz .
Hinweis : Für deaktivierte Eingaben müssen Sie die Option hinzufügen
disabled: true
.quelle
with
definitiv nur dann true zurückgegeben, wenn der Wert für mich übereinstimmt, was das erwartete Ergebnis ist.expected […] but there were no matches. Also found "", which matched the selector but not all filters..
auf ein leeres Feld, das einer sehr schönen Fehlermeldung sehr nahe kommt.Wenn Sie speziell auf einen Platzhalter testen möchten, verwenden Sie:
oder:
Wenn Sie den vom Benutzer eingegebenen Wert testen möchten:
quelle
Ich habe mich gefragt , wie etwas etwas anderes tun: Ich wollte testen , ob das Feld hatte etwas Wert (bei Verwendung zur Herstellung von Capybara Fähigkeit zum erneuten Test der Matcher , bis sie paßt ). Es stellt sich heraus, dass es möglich ist, einen "Filterblock" zu verwenden, um dies zu tun:
quelle