Exemplo n.º 1
0
def getDetail(self, el, data, function, elementList):
    """
    获取详细信息里的数据
    :param self:
    :param el:
    :param function:xml
    :param elementList:
    :return:
    """
    commond.switchToDetailUI(self,el)
    el.getFunctionName(function[0])
    for i in range(len(elementList)):
        el.get_element(elementList[i])
        dictFunction = EL.get_el_dict(function[0], elementList[i], xmlpath)
        tagname=' '
        try:
            tagname = el.get().get_attribute('tagname')
        except:
            pass
        if tagname==None:
            tagname=''
            currenttext=u'没有类型'
        if 'elementType' in dictFunction:
            if dictFunction['elementType'] == 'select':
                currenttext = Select(el.get()).all_selected_options[0].text
            elif dictFunction['elementType'] == 'input' or dictFunction['elementType'] == 'textarea':
                currenttext = el.get().get_attribute('value').strip()
            else:
                currenttext = el.get().text.strip()
        if isinstance(data,list):
            resulttext=currenttext
            if data==[]:
                exit(u'空列表')
            if data[0] != '':
                if data[0].isdigit():
                    resultArea=float(resulttext)
                    minArea=float(data[0])
                else:
                    if resulttext==0:
                        resulttext='1980-01-01'
                    try:
                        beginTime = time.strptime(data[0], '%Y-%m-%d')
                        resultTime = time.strptime(resulttext.split()[0], '%Y-%m-%d')
                    except:
                        pass

            else:
                if data[1].isdigit():
                    minArea=0
                    resultArea = float(resulttext)
                else:
                    try:
                        beginTime = time.strptime('1971-01-01', '%Y-%m-%d')
                        try:
                            resultTime = time.strptime(resulttext, '%Y-%m-%d %H:%M:%S')
                        except:
                            resultTime = time.strptime(resulttext, '%Y-%m-%d')
                    except:
                        logging.info(u'数据不为时间格式')
                        pass

            if len(data)>1:
                if data[1]!='':
                    if data[1].isdigit():
                        maxArea=int(data[1])
                        if resultArea<minArea or resultArea>maxArea:
                            return False
                    else:
                        #print data[1]
                        #判断是否为日期格式
                        try:
                            #endTime=time.strptime(data[1], '%Y-%m-%d')
                            subtime=data[1]+' 23:59:59'
                            endTime =time.strptime(subtime, '%Y-%m-%d %H:%M:%S')
                        except:
                            logging.info(u'数据不为时间格式')
                            return resulttext in data

                        if time.mktime(resultTime) < time.mktime(beginTime) or time.mktime(
                                resultTime) > time.mktime(endTime):
                            print time.mktime(resultTime)<time.mktime(beginTime),time.mktime(resultTime)>time.mktime(endTime),resultTime,endTime
                            logging.error(resulttext)
                            return False
        else:
            if currenttext.strip() not in data:
                #print currenttext,data
                logging.error()
                return False
        logging.info(tagname + u':' + currenttext)

    return True