Ich verwende Xamarin.UITest, um die Automatisierung in der iOS App auszuführen.
Das Problem ist folgendes: Während des Zugriffs auf die Galerie, um ein Foto hochzuladen, gibt es einen Erlaubnisdialog und ich muss auf "OK" tippen, um sie zu schließen.
Die folgenden Möglichkeiten, die ich versucht habe, aber sie haben nicht funktioniert:
Wenn Sie den Befehl tree verwenden, wird die Hierarchie dieses Dialogfelds nicht angezeigt, sodass i kann das zu automatisierende Oberflächenelement nicht finden
Verwenden
%Code%
Dieser angezeigte Fehler:
iOSApp.InvokeUia("UIATarget.localTarget().frontMostApp().alert().buttons()[\"OK\"].tap()");
UIATarget.localTarget().frontMostApp().alert().buttons()["OK"] could
not be tapped because the element is not visible tap@[native code]
scheint es möglich zu sein, zu arbeiten, aber Sie müssen wissen, dass die richtige Koordinate von verschiedenen Bildschirmen abhängt und wenn der Dialog erscheint. Gibt es eine Lösung, um an diesem Problem zu arbeiten? Danke.
Systemdialoge für Berechtigungen liegen außerhalb des Anwendungsbereichs der App und werden nicht in tree
oder einer anderen Abfrage angezeigt, die Sie über UITest ausführen können. Stattdessen werden diese normalerweise automatisch von der Kalebasse behandelt. Das "automatische" Verhalten besteht darin, einen beliebigen Erlaubnisdialog zu akzeptieren.
Ist Ihr Dialog in einer anderen Sprache, in der "OK" möglicherweise in einer nicht-englischen Sprache angezeigt wird? Wenn dies der Fall ist, müssen wir möglicherweise ein Problem für dieses spezielle Gebietsschema einreichen, damit es implementiert werden kann.
Stellen Sie außerdem sicher, dass Sie die neueste UITest-Version haben. Sehen Sie sich die Änderungen für iOS 10 und InvokeUia hier an.
Wenn Sie Repl () verwenden; In Ihrem Code können Sie versuchen, die Markierung für die OK-Schaltfläche mit dem Baumbefehl zu erhalten.
Wenn Sie die Visual Studio Entreprise Edition verwenden, können Sie Ihre Tests mit dem Xamarin Test Recorder erheblich vereinfachen. Das funktioniert fantastisch!
Eine weitere Sache, die beachtet werden sollte, ist, dass UI-Tests normalerweise für Screenshots und Screen-Layout-Validierungen durchgeführt werden, die Funktionalität von Ihrem sollte mit einer anderen Art von Test mit einem anderen Framework oder Toolkit getestet werden.