2016-09-09 2 views
0

Wir versuchen, Testläufe in der Xamarin Test Cloud einzurichten, und wir werden sehr oft auf das folgende Problem stoßen.Ausnahme in Texteinträgen beim Ausführen von iOS-Tests auf XTC

Zum Beispiel für die Anmeldung Szenario, manchmal ist die Tastatur nicht sichtbar Text eingeben und ich erhalte die folgende Ausnahme:

Fehler beim Enterdurchführen („XXXXXX“)

Ausnahme: System.Exception : Für die Texteingabe ist keine Tastatur sichtbar. bei Xamarin.UITest.iOS.iOSApp + c__AnonStorey5. <> m__0() < 0x69f0838 + 0x0011f> in: 0 bei Xamarin.UITest.Utils.ErrorReporting.With (System.Action func, System.Object [] args, System.String memberName) < 0x69e0988 + 0x00030> in: 0

Ich glaube nicht, dass das Hinzufügen einer Wartezeit die beste Lösung ist. Haben Sie sich mit diesem Problem konfrontiert? Irgendwelche Vorschläge, was die beste Lösung dafür ist?

+0

Können Sie Ihre Syntax für den Test zeigen und einige weitere Informationen geben, warum Sie nicht denken, eine Warte Hinzufügen Zeit würde helfen? –

+0

Vielen Dank Kent für Ihre Antwort. Wir haben das Problem behoben (vorerst), indem wir vor allen Texteinträgen ein "waitforkeyboard" hinzugefügt haben. Die Wartezeit funktionierte für uns nicht, weil es schwierig war, einen optimalen Zeitpunkt zu finden - manchmal 2 Sekunden, manchmal 5 und manchmal 10. (Das alles war für Tests in der Cloud, also habe ich keine Informationen wie Fehlerprotokolle usw. – Kiran

+1

Es ist typisch, dass Testläufe in der Cloud länger dauern als lokal, in diesem Handbuch heißt es beispielsweise, dass die Standardwartezeit für ein lokales UITest 15 Sekunden beträgt, in Test Cloud jedoch 1 Wenn Sie jedoch das Zeitlimit manuell setzen, das sie überschreibt: https://developer.xamarin.com/guides/testcloud/uitest/working-with/timeouts/. –

Antwort

5

Verwenden Sie Xamarin.UITest 2.0.0?

hinzufügen Längerer WaitForElement()

  • Wie Kent oben in den Kommentaren vorgeschlagen, verwenden Sie einen längeren WaitForElement. Vielleicht 90 Sekunden? Wenn das Element in einer kürzeren Zeit gefunden wird, werden Sie nicht die ganzen 90 Sekunden warten.
  • app.WaitForElement(c=>c.Marked("success_message_label"), "Did not see the success message."), new TimeSpan(0,0,1,30,0));
  • https://developer.xamarin.com/guides/testcloud/uitest/working-with/timeouts/

Versuchen Thread.Sleep (Millisekunden) in der UITest

Beachten Sie auch (für zukünftige Zuschauer), dass, wenn auf iOS lokal testen

Verwandte Themen