Aktualisierung eines EditText mit Espresso
Ich versuche, zu aktualisieren, eine EditText
als Teil einer Espresso-test mit:
onView(allOf(withClassName(endsWith("EditText")), withText(is("Test")))).perform(clearText())
.perform(click())
.perform(typeText("Another test"));
Allerdings erhalte ich die folgende Fehlermeldung:
com.google.android.apps.common.testing.ui.espresso.NoMatchingViewException: No views in hierarchy found matching: (with class name: a string ending with "EditText" and with text: is "Test")
Durch den Abbau der Testlinie kann ich sehen, dass dies geschieht, nach der Durchführung clearText()
also gehe ich davon aus, dass der Matcher neu-führen Sie vor jeder perform
und scheitern, die vor der zweiten Aktion. Obwohl dies Sinn macht, es lässt mich etwas verwirrt, wie das aktualisieren der EditText
mit Espresso. Wie sollte ich das tun?
Beachten Sie, dass ich nicht verwenden können, eine resource-ID oder ähnlich wie in diesem Szenario, und verwenden Sie die Kombination, wie oben gezeigt, zu identifizieren, die richtige Ansicht.
InformationsquelleAutor der Frage jgm | 2014-05-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die
replaceText
Methode.InformationsquelleAutor der Antwort Abhinav Manchanda
Drei Dinge versuchen:
1. Sie können ausführen führt in Folge.
2. Es ist ein aufgezeichnete Problem auf die Espresso-Seite wurde als ungültig markiert (aber ist immer noch sehr viel Fehler). Eine Abhilfe für dieses ist zum anhalten der Prüfung von in-zwischen führt.
3. Sind Sie absolut sicher, dass Ihr EditText enthält den text "Test"?
InformationsquelleAutor der Antwort James Davis
Ich hatte ein ähnliches Problem und löste es mit dem containsString matcher und Klasse.getSimpleName(). Wie diese:
Sehen Sie den vollständigen code hier
InformationsquelleAutor der Antwort voghDev
Könnten Sie versuchen, zwei Dinge. Zuerst würde ich versuchen,
Diese Weise würden Sie haben immer Zugriff auf das EditText Feld, auch wenn andere EditText Felder sind auf dem Bildschirm.
Wenn das nicht eine option, Sie können split up führen Sie Ihre Anrufe.
InformationsquelleAutor der Antwort Maxwell