Espresso - typeText nicht funktioniert
Ich versuche zu geben Sie text innerhalb eines EditText:
public void testSearch() {
onView(withId(R.id.titleInput)).perform(typeText("Engineer"));
onView(withId(R.id.titleInput)).check(matches(withText("Engineer")));
}
Sehe ich die EditText ist Fokus erhalten, aber es passiert nichts. Wird kein text eingegeben.
Ich habe versucht, diese auf einem Handy und emulator - dasselbe Ergebnis.
InformationsquelleAutor Eduard Kotysh | 2013-12-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht aus wie ich herausgefunden, das Problem. Es hatte zu tun mit hardware-vs software-Tastatur.
Für Emulatoren:
Gehen Sie zu Einstellungen -> Sprache & Eingabe -> schalten Sie die Standard-Sample Soft Keyboard.
Für Handys:
Installieren Sie eine software-Tastatur aus dem Play-store, um es zu wechseln. Es scheint, dass die nativen Tastaturen von einigen Handys nicht funktionieren.
Funktioniert es jetzt.
InformationsquelleAutor Eduard Kotysh
Wenn die EditText nicht den Fokus hat, noch sollten Sie es zuerst. Wenn dies Ihr problem löst, dann ist es kein bug.
Vielen Dank, es löste mein Problem, denn ich höre den Fokus ändert.
Nicht sicher, wie Espresso wurde die Arbeit im Jahr 2013, als Sie beantwortet, aber nun den auf/Schwerpunkt ist die Betreuung durch
ViewActions.typeText()
InformationsquelleAutor skyleecm
Hatte das gleiche Problem mit Espresso 2. Als workaround bin ich mit replaceText statt typeText.
replaceText
für mich gearbeitet. Es gibt definitiv einige Fehler intypeText
InformationsquelleAutor dorr
Umgehen kann man das problem durch Aufruf von setText auf die EditText.
Die Lösung mag funktionieren, aber ich denke, ethisch ist dies nicht der richtige Weg. Beim Espresso hat gezeigt, dass eine API, mit der Sie dies tun, dann denke ich, wir sollten uns auf den bug. Warum nicht öffnen ein Fehler auf deren Seite oder über google groups.
Hallo Eduard, ich Stimme mit Khushboo , sollten Sie einen bug in Espresso-site. Vielleicht ein anderes widget im screen gewonnen hat, im Fokus.
Thema Eingereicht. code.google.com/p/android-test-kit/issues/detail?id=32
InformationsquelleAutor skyleecm
Können Sie ihn mit in den code wie folgt,
onView(withId(R. id.titleInput)).durchführen(klicken Sie auf(), replaceText("Ingenieur"), closeSoftKeyboard() );
InformationsquelleAutor Shainu Thomas
Wenn Sie mit Genymotion, müssen Sie möglicherweise zu wechseln die Standard-Tastatur in Genymotion-Konfiguration (es ist eine app auf dem emulator).
ANMERKUNG: Diese änderungen bleiben nicht erhalten, nachdem Sie in der Nähe der emulator. Sie müssen diese jedes mal, wenn Sie starten Sie den emulator.
InformationsquelleAutor Maxwell
Ich das Problem gelöst, indem die Einstellung
layout_height="wrap_content"
auf die Anzeigen wollte ichclick()
. Vielleicht hilft es hier jemandem.InformationsquelleAutor sonique