2016-09-14 1 views
1

Es ist kein Duplikat.Zugriff Umschalttaste in Android-Einstellungen mit appium whlie Client ist in groovy und Java geschrieben

Ich schreibe Automatisierung in Appium. Ich bin ziemlich neu im Automatisierungskonzept und Appium es selbst. Ich benutze Java-Client.

Ich habe ein Szenario, in dem meine Android-App, für die ich Automatisierung schreibe, Android-Erlaubnis nehmen muss. Meine Anwendung navigiert zur folgenden Einstellungsseite der Android-Einstellungen, wie unten gezeigt.

enter image description here

Um Klicks auf dieser Seite automatisieren ich eine Seite Objekt erstellt haben, die diesen Bildschirm darstellen würde. In diesem Szenario bin ich nur daran interessiert, die Switch zu wechseln und zu lernen, wie man seinen Zustand bekommt.

Ich könnte Ressource-ID für die UI Automator Viewer etwas wie das bekommen.

enter image description here

Also meine Initialisierung ist so etwas wie dieses den Schalter Widget zuzugreifen.

SwitchID { $("#switchWidget") } 

Offenbar Wenn ich die Funktion Datei ausführen, ist Appium nicht in der Lage diesen Schalter Widget zu finden. Aber ich kann andere Widgets innerhalb der Anwendung, an der ich arbeite, automatisieren. aber ich kann nichts auf diesem Einstellungsbildschirm von Android bekommen.

Jede Hilfe wäre hoch angesehen. Danke

+0

benötigen würde das POM Sie folgen und wie wird das Widget zugegriffen verstehen durch Ihre Anwendung. In dieser Frage gibt es sehr wenige Informationen. – nullpointer

Antwort

1

Sie können auf alle sichtbaren Komponenten auf der Benutzeroberfläche zugreifen. Sei es Knöpfe/Schalter oder was auch immer.
Es gibt mehrere Möglichkeiten, mit einem Appium/Selenium-Treiber auf ein Element zuzugreifen - Nach Name/ID/XPath, etc. Verwenden Sie UIAutomator, um die ID/Name/Inhalt des sichtbaren Elements zu erfassen und fertig!
In Ihrem Fall, wie ich in UIAutomator Screenshot sehen kann - erhalten Sie sowohl ID und Name. So können Sie eines von ihnen verwenden, um auf das gewünschte Element zu klicken.

http://appium.io/introduction.html

1

mit dem Java-Client (Sie können Ihre relevanten groovy/Java-Syntax von Appium siehe) ich den Schalter nach Klassennamen bekommen würde. Etwas wie das: driver.findElement(By.className("android.widget.Switch"))

Nicht sicher über den groovy Client, aber es ist wahrscheinlich ähnlich.

+0

Danke TinyTimZamboni –

0

Was ist, wenn der Schalter bereits überprüft wird? Wenn Sie tippen Sie werden es deaktivieren ...

Versuchen:

driver.find_element_by_xpath("//android.widget.Switch[@resource-id='android:id/switchWidget' and @checkable='true']") 

Dies wird nur Ihr Element erhalten, wenn überprüfbar ist

Verwandte Themen