2016-04-08 9 views
1

Ich Anfänger in Testautomatisierung auf Android mit Appium. Ich benutze IUAtomatorviewer, um Element von Android-Anwendung zu bekommen, aber ich denke, dass meine Anwendung benutzerdefinierte UI haben. Ich habe android.support.v7.widget.RecyclerView/android.view.View in [android.view.View] Element gesehen, gibt es keinen Text oder andere Informationen.Appium Automatisierungstest: Wie Element oder Text von benutzerdefinierten UI in Android erhalten [Android.View.View]

Hier ist mein Code:

AndroidElement el = driver.findElement(By.id(io.***.vodi:id/message_list_item_chat_id)); 
AndroidElement el2 = (AndroidElement) el.findElementByClassName("android.view.View"); 
el2.getText(); //result is blank 
el2.getAttribute("text") //result is blank 

So wie ich Text aus [android.view.View] bekommen Sie? oder ein Attribut der Ansicht?

schnapp Refer aufgenommen mit UIAutomatorviewer:

enter image description here

enter image description here

+1

obwohl ich bezweifle, es ist wegen der 'RecyclerView' verwendet während der Entwicklung, noch hoffe ich, dass Sie nicht am Ende eines völlig anderen' View' auf UIAutomatorViewer – nullpointer

+0

Welche Android SDK Version, die Sie verwenden? –

+0

Ich denke, auf den neuesten SDK und UIAutomator aktualisieren sollte es funktionieren. –

Antwort

0

Holen Sie sich das "Recycler Ansicht" durch seine Ressource-ID. Sie können dann die verschiedenen Ansichten innen und wählen Sie die vierte Ansicht "view # 4".

0

Ich hatte auch das gleiche Problem in Bezug auf Text aus Android-Ansicht. Code unten hilfreich für mich:

Erhalten Sie alle Ihre Element in einer Liste:

List<WebElement> allChats : driver.findElements(By.xpath("//*[@class='android.view.View']")); 

Dann for-Schleife durchlaufen und den Text erhalten mit name Attribut

for(WebElement chat : allChats) 
{ 
    System.out.println(chat.getAttribute("name")); 
}