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
1
A
Antwort
0
Als Beispiel verwende ich Clock und die Vibrieren Checkbox in Alarme
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()
Danke Diego. –