123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- # -*- coding:utf-8 -*-
- from UAT_runner import UATRunner
- from UAT_tree import UATTree
- import os, sys, time
- from UAT_log import error,info,debug
- DEBUG = True
- INFO = True
- ERROR = True
- class UATMenu():
- def __init__(self):
- self.uatRunner = UATRunner()
- self.cls = "UATMenu"
- '''
- 在目标option所在菜单下,聚焦至目标option(单层操作)
- :param optionName 目标option名字
- '''
- def moveToOption(self, optionName):
- option = self.uatRunner.uatPathManage.uatData.getOption(optionName)
- return self.uatRunner.moveToOption(option)
- '''
- 在目标option所在菜单下,进入目标option(单层操作)
- :param optionName 目标option名字
- '''
- def openMoveOption(self, optionName):
- option = self.uatRunner.uatPathManage.uatData.getOption(optionName)
- result = self.uatRunner.moveToOption(option)
- if result == False:
- return result
- return self.uatRunner.sendOptionEnterKey(option)
- '''
- 选中到目标option,如果在option所在页面,直接用moveToOption移动焦点选中,按路径执行选中步骤。
- :param optionName 目标option名字
- :param fromFirst 是否固定从firstparent到目标option
- '''
- def focusOption(self, optionName, fromFirst = False):
- option = self.uatRunner.uatPathManage.uatData.getOption(optionName)
- return self.uatRunner.focusOption(option, fromFirst)
- '''
- 进入目标option,如果在option所在页面,直接用moveToOption移动焦点选中并进入,按路径执行选中步骤。
- :param optionName 目标option名字
- :param fromFirst 是否固定从firstparent到目标option
- '''
- def openOption(self, optionName, fromFirst = False, nextParentName=""):
- option = self.uatRunner.uatPathManage.uatData.getOption(optionName)
- nextParent = self.uatRunner.uatPathManage.uatData.getParentDict(nextParentName)
- return self.uatRunner.openOption(option, fromFirst, nextParent)
- '''
- 进入目标parent,在openOption基础上,增加了后续路过弹窗的无option界面parent。例如:usb的视频播放界面,有弹出提示框,continue或者replay。
- :param parentName 目标parent名字
- :param fromFirst 是否固定从firstparent到目标option
- '''
- def openParent(self, parentName, fromFirst=False):
- parent = self.uatRunner.uatPathManage.uatData.getParentDict(parentName)
- return self.uatRunner.openParent(parent, fromFirst)
-
- '''
- 选中到目标option,如果在option所在页面,直接用moveToOption移动焦点选中,按路径执行选中步骤。
- :param optionName 目标option名字
- :param value 目标option所设的值,若为checkbox,值范围为[True,False],True表示勾选,False表示取消勾选
- :param exitMenu 执行完以后,是否退出当前菜单
- :param fromFirst 是否从第一层开始执行(菜单页面是否处于初始状态)
- '''
- def setOptionValue(self, optionName, value, exitMenu=True, fromFirst=True):
- option = self.uatRunner.uatPathManage.uatData.getOption(optionName)
- return self.uatRunner.setOptionValue(option, value, exitMenu, fromFirst)
- '''
- 读取该option的infoView参数,找到infoView的组件信息,并根据传入参数决定对infoView信息的判断
- :param optionName 目标option名字
- :param cmpPic 传入的图片路径。 如果传入此参数,则会将infoView所在的坐标进行裁剪,并对传入路径的图片进行比对
- :param cmpText 传入的文字内容。在不传入图片路径时,如果传入文字内容,则会对infoView所在坐标的文字进行识别,与传入文字比对
- 倘若cmpPic和cmpText均不传入,则只对infoView是否存在做判断。
- :returns 返回三个参数。
- 返回第一个参数为结果状态,1为找到infoView,并且传入条件比对成功;
- 0为找到infoView,但传入条件比对不成功;
- -1为未找到infoView,需要检查页面是否存在infoView,或者UATree中infoView配置是否正确
- 返回的第二个参数为测试时的整张截图;
- 返回的第三个参数为目标infoView所在坐标的裁剪图。
- '''
- def checkOptionInfoView(self, optionName, cmpText = "", cmpPic = ""):
- option = self.uatRunner.uatPathManage.uatData.getOption(optionName)
- return self.uatRunner.checkOptionInfoView(option, cmpText = cmpText, cmpPic = cmpPic)
- '''
- 读取该option的infoView参数,并返回infoView组件信息。如果返回为None,则表示未找到infoView
- '''
- def getOptionInfoView(self, optionName):
- option = self.uatRunner.uatPathManage.uatData.getOption(optionName)
- return self.uatRunner.getOptionInfoView(option)
- '''
- 检查当前页面是否存在该option
- '''
- def checkOptionExist(self, optionName):
- option = self.uatRunner.uatPathManage.uatData.getOption(optionName)
- return self.uatRunner.checkOptionExist(option)
- def getOptionObject(self, optionName):
- option = self.uatRunner.uatPathManage.uatData.getOption(optionName)
- return self.uatRunner.getOptionObject(option)
- '''
- 获取该option的取值范围,返回一个元组,包含左起最小值和右起最大值两个元素。
- '''
- def getOptionValueRange(self, optionName):
- option = self.uatRunner.uatPathManage.uatData.getOption(optionName)
- try:
- vRange = (option[UATTree.TAB_TEXT_VALUE][UATTree.ValueView_Min],
- option[UATTree.TAB_TEXT_VALUE][UATTree.ValueView_Max])
- except Exception,e:
- error(self.cls, "getOptionValueRange", "option %s 获取取值范围失败!!!将返回空值!!!"%optionName, ERROR)
- vRange = None
- return vRange
- if __name__ == "__main__":
- uatMenu = UATMenu()
- # uatMenu.openOption("av_backlight_settings",nextParentName="av_backlight_settings")
- # uatMenu.openParent("av_backlight_settings")
- uatMenu.setOptionValue("av_backlight",50, fromFirst=True)
- # uatMenu.setOptionValue("av_picture_mode","av_movie")
- # print uatMenu.getOptionValueRange("usb_Brightness")
- # obj1 = uatMenu.uatRunner.pyU.getChoosedUIObject("select")
- # print "input:"
- # input()
- # obj2 = uatMenu.uatRunner.pyU.getChoosedUIObject("select")
- # if obj1 is None:
- # print "obj1 is None!!!"
- # print "obj1.info:",obj1.info
- # print "obj1 == obj2 is ", obj1.info == obj2.info
- # print uatMenu.checkOptionInfoView("usb_mp3")
- #测试打开弹窗,选择弹窗按钮.场景:1 在弹窗前面界面;2 在弹窗后面界面;
- # print uatMenu.focusOption("usb_videoPlay_replay")
- # print uatMenu.openParent("usb_h264AC3_replay")
- # print uatMenu.openOption("usb_video_mpeg2-mp3")
- # print uatMenu.openOption("usb_video_h264-ac3")
|