2016-03-30 7 views
0

Lassen Sie sagen, ich habe eine E-Mail-Taste auf der Werkzeugleiste für bestimmte bestimmte Dokumentenleser App. Diese Mail erscheint in der Symbolleiste für einen größeren Bildschirm. Aber die gleiche Taste auf einem Gerät, deren Bildschirmgröße weniger, kann die E-Mail zeigen, wie eine Option, wenn auf den Seitenmenüoptionen klicken.Appium: Wie bestimmte Menüoption automatisieren, die auf die Bildschirmgröße auf Basis ändert

Wie würden Sie solche Szenarien mit appium automatisieren ?.

Ich stelle diese Frage, weil der Locator nicht für die Schaltfläche auf der Symbolleiste & eine Option im Menü identisch sein würde.

+0

nur um Ihnen eine Idee zu geben: 'if (Element ist in der Symbolleiste) {klicken und fortfahren} else {klicken Sie auf Menü. Wählen Sie die Option aus und fahren Sie fort} ' – nullpointer

+0

Im Anschluss scheint die Approachable nicht skalierbar zu sein, da viele Menüoptionen sich je nach Gerät ändern. Ich suche eine elegantere Lösung. – shettyvinayg

+0

gut, wenn die Optionen sind so angepasst, dass es Aussehen entsprechend der Bildschirmauflösung ändern und ihre ID auf andere Sicht so wäre, würden Sie den bedingten Fluss verwenden müssen – nullpointer

Antwort

1

Ich gehe davon aus, dass hier auf verschiedene Größen des Bildschirms gibt es eine ganz andere Sicht auf die der Mail-Schaltfläche das heißt, es ist keine Strategie (Locator weise), die Sie verwenden können.

Unter der Annahme,: mailBtnView1 ist Ihr Element in der Symbolleiste und mailBtnView2 ist Ihr Element auf der Menüoption.

Ich benutze einen Try-Catch-Block in solchen Fällen. Wenn also mailBtnView1 nicht vorhanden ist, fangen Sie die ausgelöste Ausnahme ab und klicken Sie auf mailBtnView2, z.

try{ 
mailBtnView1.click(); 
} 
catch(NoSuchElementException e){mailBtnView2.click();}