0

Ich versuche, eine Dropdown-Liste mit Culbera zu testen. Meine Menüstruktur ist alsCulbera: Auswahl der Dinge aus Dropdown-Liste in einer Android-App

Main Page 
    -- Program - Setup - Arm  
         - Torque 
    -- Test 

Jetzt Arm Displays folgt (sichtbar macht) eine Dropdown-Liste, die die Liste der ARM-Typen zeigt.

Ich möchte einen aus der Dropdown-Liste auswählen und dann Program Arm Type drücken. Aus irgendeinem Grund funktioniert das nicht wie erwartet.

Wenn benutze ich

python culebra -Gu -o command_trace.txt --scale=01.0 

die Spur ich habe ist

vc.findViewWithTextOrRaise(u'Arm').touch() 
vc.sleep(_s) 
vc.dump(window=-1) 
vc.findViewByIdOrRaise("id/no_id/21").setText(u"xxx") 
vc.sleep(_s) 
vc.dump(window=-1) 
vc.findViewWithTextOrRaise(u'OK').touch() 
vc.sleep(_s) 
vc.dump(window=-1) 
vc.findViewWithTextOrRaise(u'Program ArmType').touch() 
vc.sleep(_s) 
vc.dump(window=-1) 

Es tauchte ein Textfeld auf. (Ich habe keine Ahnung, woher es kommt) Kann jemand erklären, wie

in Culbera Dinge aus einer Dropdown-Liste auszuwählen
import re 
import sys 
import os 
import time 


from com.dtmilano.android.viewclient import ViewClient 
from com.dtmilano.android.adb.adbclient import DOWN_AND_UP 

kwargs1 = {'ignoreversioncheck': False, 'verbose': False, 'ignoresecuredevice': False} 
device, serialno = ViewClient.connectToDeviceOrExit(**kwargs1) 
kwargs2 = {'forceviewserveruse': False, 'useuiautomatorhelper': False, 'ignoreuiautomatorkilled': True, 'autodump': False, 'startviewserver': True, 'compresseddump': True} 

_s = 3 
_v = '--verbose' in sys.argv 


vc = ViewClient(device, serialno, **kwargs2) 

# Installs the Android package. Notice that this method returns a boolean, so you can test 
# to see if the installation worked. 
#vc.installPackage('AbcApp.Android.AbcApp.Android-Signed.apk') 


# sets a variable with the package's internal name 
package = 'AbcApp.Android.AbcApp.Android' 

# sets a variable with the name of an Activity in the packag 
activity = 'md591ecfcc0189ae8714.MainActivity' 

# sets the name of the component to start 
runComponent = package + '/' + activity 

# Runs the component 
device.startActivity(component=runComponent) 

vc.sleep(5) 

def GoToView(s): 
    vc.findViewWithTextOrRaise(unicode(s)).touch() 
    vc.sleep(_s) 
    vc.dump(window=-1) 

vc.dump(window=-1) 

GoToView('Program') 

GoToView('Setup') 
vc.findViewWithTextOrRaise(u'Arm').touch() 
vc.sleep(_s) 
vc.dump(window=-1) 

vc.findViewWithTextOrRaise(u'OK').touch() 
vc.sleep(_s) 
vc.dump(window=-1) 
vc.findViewWithTextOrRaise(u'Program ArmType').touch() 
vc.sleep(_s) 
vc.dump(window=-1) 


GoToView('Main') 
+0

@DiegoTorresMilano - Können Sie sich das bitte ansehen? Danke – liv2hak

+0

Ich habe nicht verstanden, was du meinst "Es tauchte ein Textfeld auf. (Ich habe keine Ahnung, woher es kommt)?" –

+1

Können Sie Screenshots hinzufügen? –

Antwort

1

Picker

A Picker ein Widget andere Widgets wie Buttons und EditText zusammengesetzt ist.

Dieses einfache Beispiel zeigt eine Timepicker

enter image description here

dann, wenn Sie

dump 

dies ist Teil der Ausgabe

android.widget.TimePicker com.dtmilano.android.demoapplication:id/timePicker 
    android.widget.NumberPicker 
     android.widget.Button 2 
     android.widget.EditText android:id/numberpicker_input 3 
     android.widget.Button 4 
    android.widget.NumberPicker 
     android.widget.Button 33 
     android.widget.EditText android:id/numberpicker_input 34 
     android.widget.Button 35 
    android.widget.NumberPicker 
     android.widget.EditText android:id/numberpicker_input AM 
     android.widget.Button PM 

wo man sehen kann laufen was ich meine von komponiert.

Dann, wenn Sie auf einige der s EditText klicken, culebra versteht, dass Ihre Absicht, einen Text einzugeben und somit zeigt es den Eingabedialog

enter image description here

Wenn Sie auf eine klicken Sie Die Schaltfläche s, culebra wird auch verstehen, dass Ihre Absicht ist, den Picker-Wert zu erhöhen oder zu verringern und die entsprechenden Berührungen zu generieren.

Ich bin nicht wirklich sicher, was sind die Drop-down s Sie erwähnt. Sind sie Spinner s? Die Ausgabe von dump wird helfen zu verstehen.

Spinner

Der Fall für die Spinner ist ein bisschen anders als es von dem Eintrag und dem Dropdown-Menü zusammengesetzt ist.

Wenn Sie jedoch einen Blick auf Berührungszonen nehmen (STRG + Z) Sie den Eintrag und den Dropdown-Pfeil sind Teil der gleichen Zone

enter image description here

Ich sehe bin mit ApiDemos Hier also, wenn Sie es testen oder neue Fragen stellen möchten, haben wir etwas zu vergleichen.

Dann klicken Sie auf den Spinner es das Dropdown-

enter image description here

und Sie diesen Code

vc.dump(window=-1) 
vc.findViewWithTextOrRaise(u'green', root=vc.findViewByIdOrRaise('id/no_id/4')).touch() 
vc.sleep(_s) 
vc.dump(window=-1) 
vc.findViewWithTextOrRaise(u'violet').touch() 

Der erste touch() ein wenig schwieriger sein könnte erzeugt wird erhalten öffnet, wenn Wenn Sie den aktuellen Wert nicht kennen, können Sie entweder die Ansichts-ID oder einen regulären Ausdruck verwenden, um alle Optionen abzugleichen.

+0

Mit 'dropdowns' meinte ich die Picker, die Sie zwischen' SBO1', 'SBO2' und' SBO3' wählen können. – liv2hak

+0

Haben noch nicht herausgefunden, wie man ein bestimmtes Element aus einem bindefähigen Picker auswählen. Können Sie im obigen Fall ein Beispielskript bereitstellen? – liv2hak

+0

In diesem Fall funktioniert das generierte Skript perfekt, indem entweder der von Ihnen eingegebene Text eingegeben oder auf die Schaltflächen geklickt wird, um den Wert zu erhöhen/zu verringern. Dies sollte der gleiche wie Ihr SB01, SB02 ... Fall sein. –

Verwandte Themen