- Erste Schritte mit der Test Suite
- Studio
- Test Suite – Studio
- Überblick
- Testaktivitäten und APIs
- Architektur der Automatisierung von Mobilgeräten
- Erste Schritte
- Verwalten des Mobile Device Managers
- Verwaltung von Anwendungen
- Erstellen von Mobile Automation-Workflows
- Geräteinteraktion
- Debugging
- Protokolle und Ausführungszeitleiste
- Problembehandlungsszenarien
- Automatisierung für React Native-Apps
- Mobile Automation-Aktivitäten und -APIs
- Orchestrator
- Test Manager
Problembehandlungsszenarien
Wenn Probleme auftreten, sollten Sie die folgenden Szenarien zur Fehlerbehebung in Betracht ziehen:
In den folgenden Themen werden die Probleme und die entsprechenden Lösungen für die Automatisierung mobiler Geräte beschrieben.
Beschreibung: Der Workflow in Studio gibt unerwartete Fehler aus und die Aktivitätspakete zeigen nicht die installierten Versionen an.
Ursache: In Ihrem Projekt stimmt die Hauptversion des UI.Automation- Aktivitätspakets nicht mit der Hauptversion des Mobile.Automation- Aktivitätspakets überein. Die Hauptversion des installierten UI.Automation- Pakets ist beispielsweise 22.10.x, und die Hauptversion des installierten Mobile.Automation- Pakets ist 22.4.x.
Lösung : Stellen Sie sicher, dass die Hauptversionen der in Ihrem Projekt installierten Aktivitätspakete UI.Automation und Mobile.Automation übereinstimmen. Paaren Sie beispielsweise UI.Automation.Activities Version 22.10.x nur mit Mobile.Automation.Activities Version 22.10.x.
Bedingung: Bei Verwendung von Appium 2.0.
/wd/hub/session
gefunden.
--base-path /wd/hub
.
Bedingung: Bei Verwendung von Appium 2.0.
Beschreibung: Alle nicht standardmäßigen Funktionen müssen ein Herstellerpräfix haben.
appium:
wie folgt für alle Funktionen manuell hinzu:
- Geben Sie in der Eingabeaufforderung oder im Terminal anstelle von
--default-capabilities "{\"systemPort\": 8201}"
--default-capabilities "{\"appium:systemPort\": 8201}"
ein. - Fügen Sie auf der Registerkarte Gerät hinzufügen im Mobile Device Manager manuell das Präfix
appium:
vor dem Namen einer zusätzlichen gewünschten Funktion hinzu.
Bedingung: Bei Verwendung von Appium 2.0.
automationName
darf nicht leer sein.
appium:
als Präfix hinzu. Beispiel: appium:automationName
.
Bedingung: Bei Verwendung von Appium 2.0.
Beschreibung: Der installierte Treiber konnte nicht gefunden werden, um die angegebenen Obergrenzen zu unterstützen.
Appium 2.0 installiert die erforderlichen Treiber nicht automatisch. Sie müssen sie separat herunterladen.
Lösung: Installieren Sie den erforderlichen Treiber für Ihre Plattform.
- Installieren Sie bei Android-Geräten den Treiber
uiautomator2
mit dem Befehlappium driver install uiautomator2
. - Installieren Sie bei iOS-Geräten den Treiber
xcuitest
mit dem Befehlappium driver install xcuitest
.
In den folgenden Themen werden die Probleme für Android-Geräte und die entsprechenden Abhilfen beschrieben.
InvalidArgumentException
fehlschlagen, die durch eine Diskrepanz im erwarteten Format einer Funktion entsteht. Das Problem tritt auf, wenn eine Funktion als String eingegeben wird, während Appium einen booleschen Wert erwartet. Eine entsprechende Fehlermeldung beinhaltet:Failed to create session.
A new session could not be created.
Details: io.appium.uiautomator2.common.exceptions.InvalidArgumentException:
Invalid '<capability name>' setting value type.
Got java.lang.String. Expected: java.lang.Boolean
Failed to create session.
A new session could not be created.
Details: io.appium.uiautomator2.common.exceptions.InvalidArgumentException:
Invalid '<capability name>' setting value type.
Got java.lang.String. Expected: java.lang.Boolean
Lösung: Deinstallieren Sie die folgenden Apps vom lokalen Gerät:
io.appium.uiautomator2.server
io.appium.uiautomator2.server.test
WebDriverException
führen. Dieser Fehler wird in der Regel als Parameters were incorrect. We wanted {\"required\":[\"text\"]} and you sent [\"value\"]", "FaultCode":"WebDriverException"}
angezeigt.
Lösung: Deinstallieren Sie Ihre aktuelle Version von UiAutomator 2. Installieren Sie dann eine neuere Version, indem Sie die folgenden Befehle in der angegebenen Reihenfolge ausführen:
appium driver uninstall uiautomator2
appium driver install uiautomator2@2.29.0
, wobei2.29.0
die Version ist, die Sie installieren möchten. Sie können diese durch jede verfügbare Version ersetzen.
npm install -g appium
(für Appium 1.x) oder npm install -g appium@next
(für Appium 2.0) schlägt fehl, da Sie hinter einem Proxy laufen. Der Fehler gibt die folgende Meldung aus:
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network npm ERR! network If you are behind a proxy, please make sure that the npm ERR! network 'proxy' config is set properly.
See: 'npm help config'
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network npm ERR! network If you are behind a proxy, please make sure that the npm ERR! network 'proxy' config is set properly.
See: 'npm help config'
Lösung: Konfigurieren Sie den npm (Node Package Manager, Knoten-Paketmanager), um Ihren Proxy zu verwenden. Führen Sie die folgenden Schritte aus:
-
Rufen Sie Ihre Proxyserveradresse und Ihre Portnummer ab:
- Gehen Sie zu Internetoptionen.
- Wählen Sie die Registerkarte Verbindungen aus.
-
Wählen Sie LAN-Einstellungenaus, und kopieren Sie den Inhalt in die Felder Adresseund Port .
-
Kehren Sie zur Eingabeaufforderung von Node.js zurück und führen Sie einen Befehl aus, der dem folgenden Format entspricht:
- Für HTTP-Proxys:
npm config set http://your_proxy_address:your_port_number
. - Für HTTPS-Proxys:
npm config set https://your_proxy_address:your_port_number
.
- Für HTTP-Proxys:
- Führen Sie den Befehl
npm install -g appium
(für Appium 1.x) odernpm install -g appium@next
(für Appium 2.0) erneut aus.
Beschreibung: Auf den angegebenen Webkontext konnte nicht zugegriffen werden. Stellen Sie sicher, dass die Android WebView zum Debuggen geeignet ist. Weitere Informationen zum Zugriff auf Webkontexte finden Sie unter Remote-Debugging von WebViews.
Abhilfen:
- Verwenden Sie WebView als native Selektoren in den Web-Kontexten, die nicht erkannt werden.
- Wenn die Selektoren bei Webanwendungen funktionieren, aber nicht bei einer nativen Anwendung, dann ermöglicht die Anwendung kein Debugging von WebViews. In diesem Fall siehe Erste Schritte mit dem Remote-Debuggen von Android WebViews und Remote-Debugging von WebViews.
Beschreibung: Gerät nicht autorisiert.
Lösung: Führen Sie die folgenden Schritte aus:
- Verwenden Sie den Befehl
adb devices
, um die vorhandenen Geräte zu überprüfen. - Debuggen auf dem Telefon aufheben.
- Starten Sie den ADB-Serverneu, indem Sie die folgenden Befehle in dieser Reihenfolge verwenden:
adb kill-server
und dannadb start-server
. - Verbinden Sie das Gerät erneut und bestätigen Sie, dass Sie der Verbindung auf diesem Gerät zustimmen.
Beschreibung: Das Android-Gerät startet eine Browser-Automatisierung anstelle der angegebenen App und verursacht dadurch Fehler.
Abhilfe: Beginnen Sie stattdessen mit einem Webbrowser.
In den folgenden Themen werden die Probleme und die entsprechenden Abhilfen für iOS-Geräte beschrieben.
Beschreibung: Wenn Sie auf ein WebView-Element klicken, funktioniert der Selektor nicht und Sie können das Element nicht automatisieren.
Lösung: Verwenden Sie die Simulatoren mit der neuesten Version von iOS und Appium 2.
Beschreibung: Das physische iOS-Gerät kann nicht gestartet werden.
Lösung: Führen Sie die folgenden Schritte aus:
- Stellen Sie sicher, dass Ihr Gerät dem Zertifikat vertraut. Gehen Sie auf Ihrem Gerät zu Einstellungen > Allgemein > Profile und Geräteverwaltung, tippen Sie auf den E-Mail-Eintrag (z. B. Apple Development: benutzername@email.com) und vertrauen Sie dann dem Zertifikat. Wenn das Gerät Ihr Unternehmenskonto verwendet, ist dies nicht erforderlich.
- Wenn Sie eine Fehlermeldung erhalten, dass Port 8100 nicht erreichbar ist, schließen Sie Appium (
ctrl + c
) und starten Sie es erneut. - Wenn Sie einen anderen Fehler erhalten, sollten Sie unter Appium XCUITest Driver Real Device nachsehen.
Beschreibung: iOS 16.0-Gerät kann nicht gestartet oder verbunden werden.
Lösung: Installieren und verwenden Sie Appium 2.0 anstelle von Appium 1. Weitere Informationen zur Installation und Verwaltung von Appium 2.0 finden Sie im Abschnitt Voraussetzungen für lokale iOS-Geräte.
Beschreibung: iOS 12.4.5 funktioniert nicht wie erwartet, wenn es mit Appium 1.22.3 gekoppelt ist.
Ursache: Dies wird durch ein Problem mit Appium verursacht.
Abhilfe: Wählen Sie eine der folgenden Optionen aus:
- Verwenden Sie eine niedrigere Version von Appium, z. B. 1.17.0.
- Aktualisieren Sie das Gerät auf Versionen gleich oder höher als iOS 14.
- Automatisierung von Mobilgeräten
- Workflow und Aktivitäten, die Fehler generieren
- Keine Route für wd/hub/session gefunden
- Anbieterpräfix für alle nicht standardmäßigen Funktionen erforderlich
- AutomationName darf nicht leer sein
- Der installierte Treiber kann nicht gefunden werden
- Android
- Verbindungsfehler aufgrund von
InvalidArgumentException
für Funktionen - Aktivitätsfehler aufgrund eines
WebDriverException
- Die Appium-Installation schlägt aufgrund des Proxys fehl
- Der angegebene Webkontext konnte nicht aufgerufen werden
- Gerät nicht autorisiert
- Browser-Automatisierung beim Starten über den Startbildschirm
- Android-App wird nicht gestartet
- iOS
- WebView-Elemente können unter iOS 13 nicht angeklickt werden
- Das physische iOS-Gerät lässt sich nicht starten
- iOS 16.0-Gerät kann nicht gestartet werden
- Fehlfunktionen von iOS 12.4.5