2016-06-03 16 views
1

Ich benutze Androidviewclient für automatisierte Black-Box-Level-Test einer Android GUI, habe ich zwei Kontrollkästchen (JA und NEIN) mit JA standardmäßig aktiviert, verwende ich VC. berühre(), um NEIN zu wählen, und ich muss wissen, ob NEIN ausgewählt wurde. Die Art, wie ich es jetzt mache, besteht darin, den Screenshot vor und nach einer Berührung aufzunehmen und sie zu vergleichen. Gibt es eine einfachere Möglichkeit, den Status der Schaltfläche/des Kontrollkästchens zu finden? Es scheint, dass touch() eine leere Funktion ist, die nichts ausgibt.Wie man den Status eines Kontrollkästchens mit AndroidViewClient

Antwort

0

Als Beispiel verwende ich Clock und die Vibrieren Checkbox in Alarme

enter image description here

Dann erzeugt wird, ich das Skript culebra mit und manuell die assert am Ende hinzugefügt (es könnte in einer Zeile gemacht werden, aber ich habe 2 für Klarheit hinzugefügt)

#! /usr/bin/env python 
# -*- coding: utf-8 -*- 
''' 
Copyright (C) 2013-2016 Diego Torres Milano 
Created on 2016-06-03 by Culebra v11.5.6 
         __ __ __ __ 
        /\/\/\/\ 
____________________/ __\/ __\/ __\/ __\_____________________________ 
___________________/ /__/ /__/ /__/ /________________________________ 
        |/\ /\ /\ /\ \___ 
        |/ \_/ \_/ \_/ \ o \ 
              \_____/--< 
@author: Diego Torres Milano 
@author: Jennifer E. Swofford (ascii art snake) 
''' 


import re 
import sys 
import os 


import unittest 

from com.dtmilano.android.viewclient import ViewClient, CulebraTestCase 

TAG = 'CULEBRA' 


class CulebraTests(CulebraTestCase): 

    @classmethod 
    def setUpClass(cls): 
     cls.kwargs1 = {'ignoreversioncheck': False, 'verbose': False, 'ignoresecuredevice': False} 
     cls.kwargs2 = {'forceviewserveruse': False, 'useuiautomatorhelper': False, 'ignoreuiautomatorkilled': True, 'autodump': False, 'startviewserver': True, 'compresseddump': True} 
     cls.options = {'start-activity': None, 'concertina': False, 'device-art': None, 'use-jar': False, 'multi-device': False, 'unit-test-class': True, 'save-screenshot': None, 'use-dictionary': False, 'glare': False, 'dictionary-keys-from': 'id', 'scale': 0.5, 'find-views-with-content-description': True, 'window': -1, 'orientation-locked': None, 'save-view-screenshots': None, 'find-views-by-id': True, 'log-actions': False, 'use-regexps': False, 'null-back-end': False, 'auto-regexps': None, 'do-not-verify-screen-dump': True, 'verbose-comments': False, 'gui': True, 'find-views-with-text': True, 'prepend-to-sys-path': False, 'install-apk': None, 'drop-shadow': False, 'output': '/home/diego/tmp/culebra/checbox.py', 'unit-test-method': None, 'interactive': False} 
     cls.sleep = 5 

    def setUp(self): 
     super(CulebraTests, self).setUp() 

    def tearDown(self): 
     super(CulebraTests, self).tearDown() 

    def preconditions(self): 
     if not super(CulebraTests, self).preconditions(): 
      return False 
     return True 

    def testSomething(self): 
     if not self.preconditions(): 
      self.fail('Preconditions failed') 

     _s = CulebraTests.sleep 
     _v = CulebraTests.verbose 

     self.vc.dump(window=-1) 
     checkbox = self.vc.findViewWithTextOrRaise(u'Vibrate') 
     self.assertTrue(checkbox.isChecked()) 

if __name__ == '__main__': 
    CulebraTests.main() 
+0

Danke Diego. –