2016-09-08 2 views
1

Ich verwende Selenium mit Appium und meine Tests laufen auf Android und iOS Real-Gerät. Eine Reihe von Tests laufen auf Android, während iOS im Leerlauf ist. Dann wechselt der Test zu iOS. Beide Geräte sind gleichzeitig verbunden.Wie mit iOS-Update-Warnung mit Appium umgehen

Im Folgenden finden Sie die Reihenfolge der Suiten I laufen bin mit testng:

<suite-file path="android_Suite1.xml" /> 
<suite-file path="ios_Suite1.xml" /> 
<suite-file path="android_Suite2.xml" /> 
<suite-file path="ios_Suite2.xml" /> 
<suite-file path="android_Suite3.xml" /> 
<suite-file path="ios_Suite3.xml" /> 

Das Problem hier ist iOS-Gerät OS-Update-Installation Pop-up, wenn der Testschalter auf Android zeigt. Ich möchte das Pop-up deaktivieren, bevor der Test auf iOS zurückwechselt. Ich kann das Update aus Einstellungen> Speicher löschen. Die Tests laufen jedoch über Nacht und es besteht die Möglichkeit, dass das Update erneut heruntergeladen wird. Da dies eine Systemwarnung ist, wird der Test nicht gestartet, da keine Sitzung erstellt wird, da Appium den Startbildschirm nicht findet. Also werden die Fähigkeiten auch nicht funktionieren. Brauchen Sie Hilfe, um dieses spezielle Pop-up zu behandeln.

+0

Pop-up hat Elemente, Sie können auf 'OK'/'Element abbrechen klicken. Was ist dein Problem genau? –

+0

Ja, aber das Popup-Fenster für die Software-Aktualisierung ist nicht OK/Abbrechen. Es hat Install/Later/.. Kann auch nicht auf dieses Pop-up zugreifen, wenn iOSdriver nicht erstellt wird. – Viplav

Antwort

0

Nicht sicher, kann ich Ihnen eine genaue Lösung geben, aber Sie könnten ein Zwei-Thread-System, eines für Android und eines für iOS. Dann gib einfach jeden Thread, während der andere testet. Sie müssen dazu zwei Instanzen von Appium ausführen (verschiedene Ports).

je Dann auf die genaue Funktionalität mit einer der Wege lösen unter:

1) Dann haben auch einen Treiber für jeden Lauf. Zu diesem Zeitpunkt könnten Sie einfach Ihre Logik auf der iOS-Seite eingeben, um Warnungen immer zu ignorieren/zu akzeptieren.

2) Sie könnten einen Thread-Stamm aus dem iOS-Thread haben, der nach dem Software-Popup sucht, immer 'x' Sekunden, dann, falls gefunden, wird es geschlossen.

Ich hatte ein ähnliches Problem mit asynchronen Popups auf Android, die ich Option (2) zu lösen. Ihr Problem scheint ein bisschen problematischer zu sein als das, womit ich mich auseinandersetzen musste. Hoffentlich können Sie mit einer guten Lösung beginnen! Entschuldigung für die mehrdeutige Antwort.

+0

Danke @JaysonP. Ich werde diesen Ansatz versuchen und in Kommentaren updaten :) – Viplav

0

Zuerst müssen Sie das heruntergeladene Update löschen, wenn es bereits heruntergeladen wurde, dann müssen Sie die automatischen Updates wie folgt ausschalten.

Automatische Updates sind standardmäßig aktiviert, daher müssen Sie sie deaktivieren. Dies wird nicht mit dem aktuellen Update helfen, aber es wird Sie davon abhalten, diese Nachrichten in Zukunft zu erhalten. Das erste, was Sie tun sollten, ist, in die Einstellungen einzutauchen und die automatischen Updates auszuschalten:

  • Tippen Sie auf Einstellungen.
  • Tippen Sie auf iTunes & App Stores.
  • Stellen Sie Updates unter "Automatische Downloads" auf Aus.
  • Dadurch wird verhindert, dass iOS in Zukunft Updates herunterlädt, obwohl Sie sich immer noch mit dem Update beschäftigen müssen, das Sie heruntergeladen haben.