2016-09-30 1 views
0

Ganz neu in Appium auf iOS im Moment mit Mokka zu suchen & JavaScript, habe ich einen Stolperstein damit aber getroffen. Unsere App verfügt über Videowiedergabe & Sobald Sie Vollbildmodus gehen, ist die einzige Möglichkeit, Vollbildmodus zu beenden, auf eine beliebige Stelle auf dem Bildschirm drücken Sie dann auf die Schaltfläche "Fertig", die angezeigt wird.Appium: Knopf verschwindet, bevor Test Zeit hat, darauf zu klicken (iOS)

Das Problem, das ich habe, ist, dass die Schaltfläche "Fertig" auf dem Bildschirm für etwa 3,5 Sekunden erscheint & bis der Test versucht, klicken Sie auf, es ist bereits wieder aus der Sicht verschwunden.

Gibt es das trotzdem, indem Sie entweder die Standardverzögerung zwischen den Klicks reduzieren oder schnell zwei Klicks/Taps ausführen?

Momentan funktioniert mein Test, wenn ich den Bildschirm manuell erneut drücke, sobald der "Fertig" -Button zuerst verschwindet, aber ich kann den Prozess nicht automatisieren.

Mein Code sieht derzeit wie folgt aus:

//Opens the video in full screen 
 
.elementByXPath("//*[@name='Live']").click() 
 
.elementByXPath("//UIAWindow[1]/UIAElement[1]").click() 
 

 
//Delay of 5 seconds to allow video to play 
 
.sleep(5000) 
 

 
//Press the video screen to get 'Done' button to appear 
 
.elementByXPath("//UIAWindow[1]/UIAScrollView[1]").click() 
 

 
//Attempt to click 'Done' button; it always disappears before it can be clicked 
 
.elementByXPath("//*[@name='Done']").click()

Jede Hilfe würde geschätzt, wie ich sage, ich bin ganz neu in diesem.

Dank

Antwort

0

Das Problem dabei ist:

Sie versuchen die Schaltfläche „Fertig“ zu finden, nachdem eine beliebige Stelle auf dem Bildschirm und appium Klopfen dauert einige Sekunden, um das Element zu finden.

Lösung:

Wenn der Standort der Schaltfläche „Fertig“, die jedes Mal, erscheint gleich ist, dann können Sie Klick-Aktion ausführen X verwenden und Y-Koordinaten anstatt das eigentliche Element zu finden.

Die X- und Y-Koordinaten der Schaltfläche "Fertig" manuell finden (einmaliger Prozess).

und klicken Sie dann auf X- und Y-Koordinaten.

driver.tap(numberOfFingers,X-co-ordinate,Y-co-ordinate,durationInMilliseconds) 

z.B. driver.tap(1,200,300,1000)

Ich hoffe, das hilft :)

Verwandte Themen