コード例 #1
0
    def getLocateMethodAndData(self,element):
        excel=ReadExcel.ReadExcel()
        element_excel_path="F:\\pytest\\xebest-autotest\\Data\\send_goods.xls"
        element_sheet=excel.getTableBySheetName(element_excel_path,"objname_locatemethod_locatedata")

        #得到元素所在行号
        row_index=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(element_excel_path,"objname_locatemethod_locatedata",element)[0]

        #得到定位方式所在列号
        locate_method_key=u"定位方式简述"
        locate_method_col_index=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(element_excel_path,"objname_locatemethod_locatedata",locate_method_key)[1]

        #得到定位所需数据所在列号
        locate_data_key=u"定位所需数据"
        locate_data_col_index=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(element_excel_path,"objname_locatemethod_locatedata",locate_data_key)[1]
        #得到元素是否需要二次定位的标志
        second_locate=u"是否需要二次定位"
        is_second_locate=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(element_excel_path,'objname_locatemethod_locatedata',second_locate)[1]

        locate_method_dict={'id':By.ID,'css':By.CSS_SELECTOR,'xpath':By.XPATH,'linktext':By.LINK_TEXT,'classname':By.CLASS_NAME}
        old_first_how=element_sheet.cell_value(row_index,locate_method_col_index)
        what=element_sheet.cell_value(row_index,locate_data_col_index)
        new_first_how=locate_method_dict[old_first_how]
        judgeIsSecondLocate_flag=LocateElementCommonClass.CommonClass().judgeSecondLocateElement(is_second_locate)

        if not(judgeIsSecondLocate_flag):
            pass
コード例 #2
0
    def getOperateMethod(self, element):
        excel = ReadExcel.ReadExcel()
        operateElement_excel_path = "F:\\pytest\\xebest-autotest\\Data\\send_goods.xls"
        operateElement_sheet = excel.getTableBySheetName(
            operateElement_excel_path, "operate_method")

        #得到操作方式所在列
        operate_method_key = u"操作方式"
        operate_method_col_index = get_number_by_data.GetRowAndColNumber(
        ).getRowAndColNumber(operateElement_excel_path, "operate_method",
                             operate_method_key)[1]

        #得到需要定位的元素所在的行号
        row_index = get_number_by_data.GetRowAndColNumber().getRowAndColNumber(
            operateElement_excel_path, "operate_method", element)[1]
コード例 #3
0
    def getAddProductDataByTestcaseid(self, testcaseid):
        """根据传递过来得testcaseid去拿到发布产品所需要填写的内容"""
        excel = ReadExcel.ReadExcel()
        testcase_excelpath = "F:\\pytest\\editAutotest\\Data\\addProduct_data.xls"
        testcase_sheet = excel.getTableBySheetName(testcase_excelpath,
                                                   "addproduct_data")
        row_col_number_list = get_number_by_data.GetRowAndColNumber(
        ).getRowAndColNumber(testcase_excelpath, "addproduct_data", testcaseid)
        data_list = []
        # product_title:产品标题,key_word:关键词,standard:规格,producter:生产厂家,quality_date:保质期,storage_conditions:存储条件
        # product_allow_id:生产许可证号,product_standard_id:产品标准号,shop_price:批发价,retail_price:零售价
        # supply_amount:供货量,min_amount:最小起订量,sendproduct_limit:发货期限,picture_path:图片地址,product_summary:产品简介,check_code:验证码
        element_list = [
            'product_title', 'key_word', 'standard', 'producter',
            'quality_date', 'storage_conditions', 'product_allow_id',
            'product_standard_id', 'shop_price', 'retail_price',
            'supply_amount', 'min_amount', 'sendproduct_limit', 'picture_path',
            'product_summary', 'check_code'
        ]
        col_index = 2
        for i in range(element_list.__len__()):
            element_list[i] = testcase_sheet.cell_value(
                row_col_number_list[0], row_col_number_list[1] + col_index)
            col_index += 1
        for index in range(element_list.__len__()):
            data_list.append(element_list[index])

        return data_list
コード例 #4
0
 def getLocatDataAndMethod(self, element, zhuce_element_list, excel_path,
                           name_sheet_list):
     # path_excel=Get_ExcelPath_SheetName.Get_ExcelPath_SheetName().getExcelPath("F:\\Community_DD\\Data\\zhuce.xls","excelpath_sheetname")
     # name_sheet=(Get_ExcelPath_SheetName.Get_ExcelPath_SheetName().GetSheetName("F:\\Community_DD\\Data\\zhuce.xls","excelpath_sheetname"))[0]
     sheeet = ReadExcel.ReadExcel().getTableBySheetName(
         excel_path, name_sheet_list[0])
     row_col_index = get_number_by_data.GetRowAndColNumber(
     ).getRowAndColNumber(excel_path, name_sheet_list[0], element)
     old_how = sheeet.cell_value(row_col_index[0], (row_col_index[1] + 1))
     what = sheeet.cell_value(row_col_index[0], (row_col_index[1] + 2))
     #在这里增加一个字典是因为如果直接把By.ID写在excel里的话,取出来不能用
     locate_method_dict = {
         'id': By.ID,
         'css': By.CLASS_NAME,
         'xpath': By.XPATH,
         'linktext': By.LINK_TEXT,
         'swipe': 'swipe'
     }
     new_how = locate_method_dict[old_how]
     how_what = []
     how_what.append(element)
     how_what.append(new_how)
     how_what.append(what)
     how_what.append(
         self.getOperateMethod(element, excel_path, name_sheet_list))
     how_what.append(
         self.assertMoreLocate(element, excel_path, name_sheet_list))
     return how_what
コード例 #5
0
    def operateElement(self, br, object_name, located_element, username,
                       password, alertmessage):
        """该函数作用就是去操作已经定位到的元素,操作方式为sendkey或者click """
        br = br
        object_name = object_name
        located_element = located_element

        excel = ReadExcel.ReadExcel()
        operate_method_excelpath = "F:\\pytest\\xebest-autotest\\Data\\login_data.xls"
        operate_method_sheet = excel.getTableBySheetName(
            operate_method_excelpath, "operate_method")
        row_col_number_list = get_number_by_data.GetRowAndColNumber(
        ).getRowAndColNumber(operate_method_excelpath, "operate_method",
                             object_name)
        operate_method = operate_method_sheet.cell_value(
            row_col_number_list[0], row_col_number_list[1] + 1)

        print object_name
        if operate_method == 'click':
            located_element.click()
            time.sleep(5)
        elif operate_method == 'sendkey' and object_name == 'username':
            located_element.clear()
            located_element.send_keys(username)

            print username
            time.sleep(5)
        elif operate_method == 'sendkey' and object_name == 'password':
            located_element.clear()
            located_element.send_keys(password)

            print password
            time.sleep(5)
コード例 #6
0
    def judgeElementIsOperate(self,element,testcase_id):

        excel=ReadExcel.ReadExcel()
        excel_path="F:\\pytest\\xebest-autotest\\Data\\deal_order.xls"
        excel_sheet=excel.getTableBySheetName(excel_path,"isoperateElement")
        #得到元素所在的行号
        row_index=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(excel_path,"isoperateElement",element)[0]
        #得到测试用例所在的列号
        col_index=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(excel_path,"isoperateElement",testcase_id)[1]

        operateFlag=excel_sheet.cell_value(row_index,col_index)

        if operateFlag=="Y":
            return True
        else:
            return False
コード例 #7
0
    def getRegisterDataByTestcaseId(self, testcaseid):
        register_exclepath = "F:\\pytest\\xebest-autotest\\Data\\registerByPhoneNumber_data.xls"
        register_sheetname = "register_data"
        register_sheet = ReadExcel.ReadExcel().getTableBySheetName(
            register_exclepath, register_sheetname)

        row_col_number_list = get_number_by_data.GetRowAndColNumber(
        ).getRowAndColNumber(register_exclepath, register_sheetname,
                             testcaseid)
        # email-address:邮箱地址,loginpassword:登录密码,reloginpassword:确认登录密码,phonenumber:手机号码,smscheckcode:短信验证码
        # picturecheckcode:图片验证码
        element_list = [
            'email-address', 'loginpassword', 'reloginpassword', 'phonenumber',
            'smscheckcode', 'picturecheckcode'
        ]
        register_data_list = []

        col_index = 2
        for i in range(element_list.__len__()):
            register_data_list.append(
                register_sheet.cell_value(row_col_number_list[0],
                                          (row_col_number_list[1]) +
                                          col_index))
            col_index += 1

        return register_data_list
コード例 #8
0
    def judgeElementIsLocate(self, element, caseid):

        excel = ReadExcel.ReadExcel()
        element_path = "F:\\pytest\\xebest-autotest\\Data\\pay_by_balance.xls"
        element_sheet = excel.getTableBySheetName(element_path,
                                                  "isoperateElement")
        #得到测试用例id所在列号
        col_index = get_number_by_data.GetRowAndColNumber().getRowAndColNumber(
            element_path, "isoperateElement", caseid)[1]
        #得到需要定位的元素所在的行号
        row_index = get_number_by_data.GetRowAndColNumber().getRowAndColNumber(
            element_path, "isoperateElement", element)[0]
        locate_flag = element_sheet.cell_value(row_index, col_index)
        if locate_flag == 'Y':
            return True
        else:
            return False
コード例 #9
0
 def getData(self, element_key):
     login_excel_path = r"F:\AutotestCode\Data\login_data.xls"
     login_sheetname = "username_password_data"
     sheet = ReadExcel.ReadExcel().getTableBySheetName(
         login_excel_path, login_sheetname)
     row_col_list = get_number_by_data.GetRowAndColNumber(
     ).getRowAndColNumber(login_excel_path, login_sheetname, element_key)
     data = sheet.cell_value(row_col_list[0] + 1, (row_col_list[1]))
     return data
コード例 #10
0
 def judgeElementIsOperate(self,objname):
     judge_excelpath="F:\\pytest\\xebest-autotest\\Data\\registerByPhoneNumber_data.xls"
     judge_sheetname="isoperateElement"
     judge_sheet=ReadExcel.ReadExcel().getTableBySheetName(judge_excelpath,judge_sheetname)
     row_col_list=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(judge_excelpath,judge_sheetname,objname)
     if judge_sheet.cell_value(row_col_list[0],(row_col_list[1]+1))=="Y":
         return True
     else:
         return False
コード例 #11
0
 def getOperateMethod(self, login_object):
     login_excel_path = r"F:\AutotestCode\Data\login_data.xls"
     login_sheetname = "operate_method"
     sheet = ReadExcel.ReadExcel().getTableBySheetName(
         login_excel_path, login_sheetname)
     row_col_list = get_number_by_data.GetRowAndColNumber(
     ).getRowAndColNumber(login_excel_path, login_sheetname, login_object)
     operate_method = sheet.cell_value(row_col_list[0],
                                       (row_col_list[1] + 1))
     return operate_method
コード例 #12
0
    def opermateQuotePriceElement(self, browser, located_element,
                                  locate_object, send_data):
        browser = browser
        located_element = located_element
        locate_object = locate_object
        send_data_list = send_data

        excel = ReadExcel.ReadExcel()
        operate_method_excelpath = "F:\\pytest\\xebest-autotest\\Data\\quoteprice_data.xls"
        operate_method_sheet = excel.getTableBySheetName(
            operate_method_excelpath, "operate_method")
        #得到操作方式所在的列
        operateData_key = u"操作方式"
        opreatemethod_colNumber = get_number_by_data.GetRowAndColNumber(
        ).getRowAndColNumber(operate_method_excelpath, "operate_method",
                             operateData_key)[1]

        #得到操作方式所在的行
        opreatemethod_rowNumber = get_number_by_data.GetRowAndColNumber(
        ).getRowAndColNumber(operate_method_excelpath, "operate_method",
                             locate_object)[0]

        #得到操作方式
        operate_method = operate_method_sheet.cell_value(
            opreatemethod_rowNumber, opreatemethod_colNumber)

        if operate_method == "click":
            located_element.click()
            time.sleep(2)
        elif operate_method == "sendkey" and locate_object == u'首页搜索输入框':
            located_element.clear()
            # print send_data_list[0]
            located_element.send_keys(send_data_list[0])
        elif operate_method == "sendkey" and locate_object == u"产品单价":
            located_element.clear()
            located_element.send_keys(int(send_data_list[1]))
        elif operate_method == "sendkey" and locate_object == u"产品数量":
            located_element.clear()
            located_element.send_keys(int(send_data_list[2]))
        elif operate_method == "sendkey" and locate_object == u"报价描述":
            located_element.clear()
            located_element.send_keys(send_data_list[3])
コード例 #13
0
    def getOperateMethod(self, objname):

        register_exclepath = "F:\\pytest\\xebest-autotest\\Data\\register_data.xls"
        register_sheetname = "operate_method"
        register_sheet = ReadExcel.ReadExcel().getTableBySheetName(
            register_exclepath, register_sheetname)
        row_col_list = get_number_by_data.GetRowAndColNumber(
        ).getRowAndColNumber(register_exclepath, register_sheetname, objname)
        element_operate_method = register_sheet.cell_value(
            row_col_list[0], (row_col_list[1] + 1))
        return element_operate_method
コード例 #14
0
    def operateLocatedElement(self, element, located_element):
        element = element
        located_element = located_element
        excel = ReadExcel.ReadExcel()
        operate_excel_path = "F:\\pytest\\xebest-autotest\\Data\\deal_order.xls"
        operate_excel_sheet = excel.getTableBySheetName(
            operate_excel_path, "operate_method")
        #得到当前操作的元素在操作方式表中所在行
        row_index = get_number_by_data.GetRowAndColNumber().getRowAndColNumber(
            operate_excel_path, "operate_method", element)[0]
        #得到操作方式所在列
        operateMethod_value = u"操作方式"
        col_index = get_number_by_data.GetRowAndColNumber().getRowAndColNumber(
            operate_excel_path, "operate_method", operateMethod_value)[1]

        operateMethod = operate_excel_sheet.cell_value(row_index, col_index)

        if operateMethod == "click":
            located_element.click()
            time.sleep(3)
コード例 #15
0
    def judgeElementIsOperate(self,caseId,objectName):

        """
        判断该元素是否需要操作
        """
        excel=ReadExcel.ReadExcel()
        judge_excelpath="F:\\pytest\\xebest-autotest\\Data\\addProduct_data.xls"
        judge_sheet=excel.getTableBySheetName(judge_excelpath,"isoperateElement")
        judge_sheet_rows=judge_sheet.nrows

        #得到caseid所在的列号
        row_col_number_list1=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(judge_excelpath,"isoperateElement",caseId)
        colNumber=row_col_number_list1[1]
        #得到元素所在的行号
        row_col_number_list2=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(judge_excelpath,"isoperateElement",objectName)
        rowNumber=row_col_number_list2[0]
        if judge_sheet.cell_value(rowNumber,colNumber)=="Y":
            return True
        else:
            return False
コード例 #16
0
 def getRegisterObjectLocateMethod(self,browser,register_data_list,register_object):
     register_exclepath="F:\\pytest\\xebest-autotest\\Data\\registerByPhoneNumber_data.xls"
     register_sheetname="objname_locatemethod_locatedata"
     register_sheet=ReadExcel.ReadExcel().getTableBySheetName(register_exclepath,register_sheetname)
     row_col_list=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(register_exclepath,register_sheetname,register_object)
     old_how=register_sheet.cell_value(row_col_list[0],(row_col_list[1]+1))
     what=register_sheet.cell_value(row_col_list[0],(row_col_list[1]+2))
     #在这里增加一个字典是因为如果直接把By.ID写在excel里的话,取出来不能用
     locate_method_dict={'id':By.ID,'css':By.CSS_SELECTOR,'xpath':By.XPATH,'linktext':By.LINK_TEXT}
     new_how=locate_method_dict[old_how]
     self.locateRegisterObject(browser,register_data_list,register_object,new_how,what)
コード例 #17
0
    def getOperateMethod(self, element, excel_path, name_sheet_list):

        # path_excel=Get_ExcelPath_SheetName.Get_ExcelPath_SheetName().getExcelPath("F:\\Community_DD\\Data\\zhuce.xls","excelpath_sheetname")
        # name_sheet=(Get_ExcelPath_SheetName.Get_ExcelPath_SheetName().GetSheetName("F:\\Community_DD\\Data\\zhuce.xls","excelpath_sheetname"))[1]
        sheet = ReadExcel.ReadExcel().getTableBySheetName(
            excel_path, name_sheet_list[1])
        row_col_list = get_number_by_data.GetRowAndColNumber(
        ).getRowAndColNumber(excel_path, name_sheet_list[1], element)
        operate_method_data = sheet.cell_value(row_col_list[0],
                                               (row_col_list[1] + 1))
        return operate_method_data
コード例 #18
0
    def getQuotePriceDataByTestcaseId(self,testcaseId):

        excel=ReadExcel.ReadExcel()
        testcase_excelpath="F:\\pytest\\xebest-autotest\\Data\\quoteprice_data.xls"
        testcase_sheet=excel.getTableBySheetName(testcase_excelpath,"quoteprice_data")
        send_data_list=[]
        row_col_number_list=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(testcase_excelpath,"quoteprice_data",testcaseId)
        cols=testcase_sheet.ncols
        for i in range(2,cols):
            send_data_list.append(testcase_sheet.cell_value(row_col_number_list[0],i))

        return send_data_list
コード例 #19
0
 def getData(self, element_key, path_excel, name_sheet_list):
     # path_excel=Get_ExcelPath_SheetName.Get_ExcelPath_SheetName().getExcelPath("F:\\Community_DD\\Data\\zhuce.xls","excelpath_sheetname")
     # name_sheet=(Get_ExcelPath_SheetName.Get_ExcelPath_SheetName().GetSheetName("F:\\Community_DD\\Data\\zhuce.xls","excelpath_sheetname"))[2]
     sheet = ReadExcel.ReadExcel().getTableBySheetName(
         path_excel, name_sheet_list[2])
     row_col_list = get_number_by_data.GetRowAndColNumber(
     ).getRowAndColNumber(path_excel, name_sheet_list[2], element_key)
     data = sheet.cell_value(row_col_list[0] + 1, (row_col_list[1]))
     if type(data) == float:
         return int(data)
     else:
         return data
コード例 #20
0
    def getSendData(self, testcaseId):
        excel = ReadExcel.ReadExcel()
        send_data_path = "F:\\pytest\\xebest-autotest\\Data\\pay_by_balance.xls"
        send_data_sheet = excel.getTableBySheetName(send_data_path,
                                                    "pay_by_balance")
        cols = send_data_sheet.ncols
        #得到测试用例id所在的行号
        row_index = get_number_by_data.GetRowAndColNumber().getRowAndColNumber(
            send_data_path, "pay_by_balance", testcaseId)[0]
        send_data_list = []
        for i in range(2, cols):
            send_data_list.append(send_data_sheet.cell_value(row_index, i))

        return send_data_list
コード例 #21
0
 def assertMoreLocate(self, element, excel_path, name_sheet_list):
     # path_excel=Get_ExcelPath_SheetName.Get_ExcelPath_SheetName().getExcelPath("F:\\Community_DD\\Data\\zhuce.xls","excelpath_sheetname")
     # name_sheet=(Get_ExcelPath_SheetName.Get_ExcelPath_SheetName().GetSheetName("F:\\Community_DD\\Data\\zhuce.xls","excelpath_sheetname"))[0]
     sheet = ReadExcel.ReadExcel().getTableBySheetName(
         excel_path, name_sheet_list[0])
     row_col_list = get_number_by_data.GetRowAndColNumber(
     ).getRowAndColNumber(excel_path, name_sheet_list[0], element)
     isMoreLocate = sheet.cell_value(row_col_list[0], (row_col_list[1] + 3))
     second_Locate_Index = ""
     if isMoreLocate == 'Y':
         second_Locate_Index = int(
             sheet.cell_value(row_col_list[0], (row_col_list[1] + 4)))
         return second_Locate_Index
     else:
         return 0
コード例 #22
0
    def operatePayElement(self,element,located_element,send_data_list):
        log=ResultLog.ResultLog()
        excel=ReadExcel.ReadExcel()
        operate_excel_path="F:\\pytest\\xebest-autotest\\Data\\pay_by_balance.xls"
        operate_sheet=excel.getTableBySheetName(operate_excel_path,"operate_method")
        #得到操作方式所在列
        operate_method=u"操作方式"
        operate_method_col_index=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(operate_excel_path,"operate_method",operate_method)[1]

        #得到元素所在行
        row_index=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(operate_excel_path,"operate_method",element)[0]

        operate_method_flag=operate_sheet.cell_value(row_index,operate_method_col_index)

        if operate_method_flag=='click':
            try:
                located_element.click()
                time.sleep(3)
            except:
                print ("element:%s cannot operate" %element)
                raise ValueError("no element can operate")
            else:
                log.info("元素:%s 操作成功" %(element.encode('utf-8')))
        elif operate_method_flag=='sendkey' and element==u'CheckCodeInput':

            checkcode=SmsCheckCode.SmsCheckCode().getCheckCode()
            time.sleep(2)
            if checkcode:

                log.info("验证码获取成功,获取到的验证码为:%s" %(checkcode.encode('utf-8')))
            else:
                log.info("验证码获取失败")
            located_element.send_keys(checkcode)
        elif operate_method_flag=='sendkey' and element==u'PayPasswordInput':
            located_element.clear()
            located_element.send_keys(send_data_list[0])
コード例 #23
0
    def getUsernameAndPasswordByTestcaseid(self,testcaseid):
        """根据传递过来得testcaseid去拿到用户名、密码、弹出框内容"""
        excel=ReadExcel.ReadExcel()
        testcase_excelpath="F:\\pytest\\editAutotest\\Data\\login_data.xls"
        testcase_sheet=excel.getTableBySheetName(testcase_excelpath,"username_password_data")
        row_col_number_list=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(testcase_excelpath,"username_password_data",testcaseid)
        data_list=[]
        user_name=testcase_sheet.cell_value(row_col_number_list[0],row_col_number_list[1]+2)
        pass_word=testcase_sheet.cell_value(row_col_number_list[0],row_col_number_list[1]+3)
        alert_message=testcase_sheet.cell_value(row_col_number_list[0],row_col_number_list[1]+4)
        data_list.append(user_name)
        data_list.append(pass_word)
        data_list.append(alert_message)

        return data_list
コード例 #24
0
    def getSendDataList(self, testcaseId):
        excel = ReadExcel.ReadExcel()
        sendGoods_excel_path = "F:\\pytest\\xebest-autotest\\Data\\send_goods.xls"
        sendGoods_sheet = excel.getTableBySheetName(sendGoods_excel_path,
                                                    "send_goods")
        sendGoods_data_list = []
        #得到测试用例编号所在行号
        row_index = get_number_by_data.GetRowAndColNumber().getRowAndColNumber(
            sendGoods_excel_path, "send_goods", testcaseId)[0]
        cols = sendGoods_sheet.ncols
        for i in range(2, cols):
            sendGoods_data_list.append(sendGoods_sheet.cell_value(
                row_index, i))

        return sendGoods_data_list
コード例 #25
0
    def getLocateMethodAndData(self, browser, objname, username, password,
                               alertmessage):
        """根据需要定位的元素的名称得到需要定位的元素的定位方式以及定位数据"""
        obj_name = objname
        br = browser
        excel_path = "F:\\pytest\\xebest-autotest\\Data\\login_data.xls"
        row_col_number_list = get_number_by_data.GetRowAndColNumber(
        ).getRowAndColNumber(excel_path, "objname_locatemethod_locatedata",
                             obj_name)
        excel = ReadExcel.ReadExcel()
        locate_method_data_excelpath = "F:\\pytest\\xebest-autotest\\Data\\login_data.xls"
        locate_method_data_sheet = excel.getTableBySheetName(
            locate_method_data_excelpath, "objname_locatemethod_locatedata")

        old_how = locate_method_data_sheet.cell_value(
            row_col_number_list[0], row_col_number_list[1] + 1)
        what = locate_method_data_sheet.cell_value(row_col_number_list[0],
                                                   row_col_number_list[1] + 2)
        #在这里增加一个字典是因为如果直接把By.ID写在excel里的话,取出来不能用
        locate_method_dict = {
            'id': By.ID,
            'css': By.CSS_SELECTOR,
            'xpath': By.XPATH,
            'linktext': By.LINK_TEXT
        }

        #下述代码判断定位方式

        new_how = locate_method_dict[old_how]
        # if old_how=='linktext':
        #     new_how=locate_method_dict["linktext"]
        # elif old_how=='id':
        #     new_how=locate_method_dict['id']
        # elif old_how=='css':
        #     new_how=locate_method_dict["css"]
        # elif old_how=='xpath':
        #     new_how=locate_method_dict["xpath"]
        print obj_name, new_how, what
        #调用定位元素方法,并传递给该方法一个定位方式,定位值,元素名称,用户名,密码,弹出框内容
        self.locateElement(br, new_how, what, obj_name, username, password,
                           alertmessage)
コード例 #26
0
    def getLocateMethodAndData(self,br,element):
        element=element
        excel=ReadExcel.ReadExcel()
        object_excel_path="F:\\pytest\\xebest-autotest\\Data\\deal_order.xls"
        object_sheet=excel.getTableBySheetName(object_excel_path,"objname_locatemethod_locatedata")
        #得到元素所在行
        row_index=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(object_excel_path,"objname_locatemethod_locatedata",element)[0]
        #得到定位方式所在列
        locateMethod_Key=u"定位方式简述"
        locateMethod_colNumber=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(object_excel_path,"objname_locatemethod_locatedata",locateMethod_Key)[1]
        #得到定位所需数据所在列
        locateData_key=u"定位所需数据"
        locateData_colNumber=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(object_excel_path,"objname_locatemethod_locatedata",locateData_key)[1]

        #得到判断元素是否需要二次定位的判断条件所在列
        isSecondLocate_key=u"是否需要二次定位"
        SecondLocate_key_colNumber=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(object_excel_path,"objname_locatemethod_locatedata",isSecondLocate_key)[1]
        #存储从excel表中取出的定位方式和定位数据,以及判断是否需要二次定位的条件
        old_how=object_sheet.cell_value(row_index,locateMethod_colNumber)
        old_what=object_sheet.cell_value(row_index,locateData_colNumber)
        secondLocate=object_sheet.cell_value(row_index,SecondLocate_key_colNumber)
        locate_method_dict={'id':By.ID,'css':By.CSS_SELECTOR,'xpath':By.XPATH,'linktext':By.LINK_TEXT}

        if not(CommonClass().judgeSecondLocateElement(secondLocate)):
            if old_how=="switchHandle":
                index=int(old_what)
                CommonClass().switchHandle(br,index)
            else:
                new_how=locate_method_dict[old_how]
                located_element=CommonClass().findElement(br,new_how,old_what)
                OperateDealOrderObject.OperateDealOrderObject().operateLocatedElement(element,located_element)

        else:
            new_first_how=locate_method_dict[old_how]
            #得到二次定位方式的值所在列
            secondLocatemethod_key=u"二次定位的方式"
            secondLocate_colNumber=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(object_excel_path,"objname_locatemethod_locatedata",secondLocatemethod_key)[1]
            old_second_how=object_sheet.cell_value(row_index,secondLocate_colNumber)
            #得到二次定位所需值
            secondLocateData_key=u"二次定位所需数据"
            secondLocateData_colNumber=get_number_by_data.GetRowAndColNumber().getRowAndColNumber(object_excel_path,"objname_locatemethod_locatedata",secondLocateData_key)[1]
            secondLocate_what=object_sheet.cell_value(row_index,secondLocateData_colNumber)
            new_second_how=locate_method_dict[old_second_how]

            second_located_element=CommonClass().locateElementIndirectly(br,new_first_how,old_what,new_second_how,secondLocate_what)

            OperateDealOrderObject.OperateDealOrderObject().operateLocatedElement(element,second_located_element)
コード例 #27
0
    def getLocateElementList(self, browser, testcaseId, send_data_list):
        caseid = 'case_0010'
        excel = ReadExcel.ReadExcel()
        element_path = "F:\\pytest\\xebest-autotest\\Data\\pay_by_balance.xls"
        element_sheet = excel.getTableBySheetName(
            element_path, "objname_locatemethod_locatedata")
        rows = element_sheet.nrows
        #得到元素名称所在列
        element_name = u"元素名称"
        col_index = get_number_by_data.GetRowAndColNumber().getRowAndColNumber(
            element_path, "objname_locatemethod_locatedata", element_name)[1]
        element_list = []
        for i in range(1, rows):
            element_list.append(element_sheet.cell_value(i, col_index))

        for element in element_list:

            if self.judgeElementIsLocate(element, caseid):
                self.getLoacteMethodAndData(browser, element, send_data_list)
                # print "元素:%s 需要被操作" %(element.encode('utf-8'))
            else:
                print "元素:%s 不需要被操作" % (element.encode('utf-8'))
コード例 #28
0
 def getLocateMethodAndValue(self, login_data_list, login_object):
     login_excel_path = r"F:\AutotestCode\Data\login_data.xls"
     login_sheetname = "objname_locatemethod_locatedata"
     sheet = ReadExcel.ReadExcel().getTableBySheetName(
         login_excel_path, login_sheetname)
     row_col_list = get_number_by_data.GetRowAndColNumber(
     ).getRowAndColNumber(login_excel_path, login_sheetname, login_object)
     old_how = sheet.cell_value(row_col_list[0], (row_col_list[1] + 1))
     what = sheet.cell_value(row_col_list[0], (row_col_list[1] + 2))
     #在这里增加一个字典是因为如果直接把By.ID写在excel里的话,取出来不能用
     locate_method_dict = {
         'id': By.ID,
         'css': By.CSS_SELECTOR,
         'xpath': By.XPATH,
         'linktext': By.LINK_TEXT
     }
     new_how = locate_method_dict[old_how]
     how_what = []
     how_what.append(login_object)
     how_what.append(new_how)
     how_what.append(what)
     how_what.append(self.getOperateMethod(login_object))
     return how_what
コード例 #29
0
    def opermateAddProductElement(self, br, object_name, located_element,
                                  data_list):
        br = br
        object_name = object_name
        located_element = located_element

        excel = ReadExcel.ReadExcel()
        operate_method_excelpath = "F:\\pytest\\editAutotest\\Data\\addProduct_data.xls"
        operate_method_sheet = excel.getTableBySheetName(
            operate_method_excelpath, "operate_method")
        row_col_number_list = get_number_by_data.GetRowAndColNumber(
        ).getRowAndColNumber(operate_method_excelpath, "operate_method",
                             object_name)
        operate_method = operate_method_sheet.cell_value(
            row_col_number_list[0], row_col_number_list[1] + 1)

        print object_name
        if operate_method == 'click':
            located_element.click()
            time.sleep(4)
        elif operate_method == 'sendkey' and object_name == u'产品标题':
            located_element.clear()
            located_element.send_keys(data_list[0])
        elif operate_method == 'sendkey' and object_name == u'关键词':
            located_element.clear()
            located_element.send_keys(data_list[1])
        elif operate_method == 'sendkey' and object_name == u'产品规格':
            located_element.clear()
            located_element.send_keys(data_list[2])

        elif operate_method == 'sendkey' and object_name == u'生产厂家':
            located_element.clear()
            located_element.send_keys(data_list[3])

        elif operate_method == 'sendkey' and object_name == u'保质期':
            located_element.clear()
            located_element.send_keys(int(data_list[4]))

        elif operate_method == 'sendkey' and object_name == u'存储条件':
            located_element.clear()
            located_element.send_keys(data_list[5])

        elif operate_method == 'sendkey' and object_name == u'生产许可证号':
            located_element.clear()
            located_element.send_keys(data_list[6])

        elif operate_method == 'sendkey' and object_name == u'产品标准号':
            located_element.clear()
            located_element.send_keys(data_list[7])

        elif operate_method == 'sendkey' and object_name == u'批发价':
            located_element.clear()
            located_element.send_keys(int(data_list[8]))

        elif operate_method == 'sendkey' and object_name == u'零售价':
            located_element.clear()
            located_element.send_keys(int(data_list[9]))

        elif operate_method == 'sendkey' and object_name == u'供货量':
            located_element.clear()
            located_element.send_keys(int(data_list[10]))

        elif operate_method == 'sendkey' and object_name == u'最小起订量':
            located_element.clear()
            located_element.send_keys(int(data_list[11]))

        elif operate_method == 'sendkey' and object_name == u'发货期限':
            located_element.clear()
            located_element.send_keys(int(data_list[12]))

        elif operate_method == 'sendkey' and object_name == u'图片上传弹出框的浏览按钮':

            located_element.send_keys(data_list[13])

        elif operate_method == 'sendkey' and object_name == u'产品简介':
            located_element.clear()
            located_element.send_keys(data_list[14])

        elif operate_method == 'sendkey' and object_name == u'验证码':
            located_element.clear()
            located_element.send_keys(int(data_list[15]))
コード例 #30
0
    def getLoacteMethodAndData(self, browser, element, send_data_list):
        excel = ReadExcel.ReadExcel()
        locate_element_path = "F:\\pytest\\xebest-autotest\\Data\\pay_by_balance.xls"
        locate_element_sheet = excel.getTableBySheetName(
            locate_element_path, 'objname_locatemethod_locatedata')
        #得到需要定位的元素所在的行号
        row_index = get_number_by_data.GetRowAndColNumber().getRowAndColNumber(
            locate_element_path, 'objname_locatemethod_locatedata', element)[0]
        #得到定位方式所在的列号
        locate_mehtod = u"定位方式简述"
        locate_method_col_index = get_number_by_data.GetRowAndColNumber(
        ).getRowAndColNumber(locate_element_path,
                             'objname_locatemethod_locatedata',
                             locate_mehtod)[1]
        #得到定位元素所需要的数据所在的列号
        locate_data = u"定位所需数据"
        locate_data_col_index = get_number_by_data.GetRowAndColNumber(
        ).getRowAndColNumber(locate_element_path,
                             'objname_locatemethod_locatedata', locate_data)[1]
        #得到元素是否需要二次定位的标志
        second_locate = u"是否需要二次定位"
        is_second_locate = get_number_by_data.GetRowAndColNumber(
        ).getRowAndColNumber(locate_element_path,
                             'objname_locatemethod_locatedata',
                             second_locate)[1]

        locate_method_dict = {
            'id': By.ID,
            'css': By.CSS_SELECTOR,
            'xpath': By.XPATH,
            'linktext': By.LINK_TEXT
        }
        old_locate_method = locate_element_sheet.cell_value(
            row_index, locate_method_col_index)
        what = locate_element_sheet.cell_value(row_index,
                                               locate_data_col_index)
        second_locate_flag = locate_element_sheet.cell_value(
            row_index, is_second_locate)
        new_locate_how = locate_method_dict[old_locate_method]
        if not (LocateElementCommonClass.CommonClass().
                judgeSecondLocateElement(second_locate_flag)):
            located_element = LocateElementCommonClass.CommonClass(
            ).findElement(browser, new_locate_how, what, element)
            OperatePayByBalanceElement.OperatePayByBalanceElement(
            ).operatePayElement(element, located_element, send_data_list)

        else:
            #得到二次定位方式的值所在列
            secondLocatemethod_key = u"二次定位的方式"
            secondLocate_colNumber = get_number_by_data.GetRowAndColNumber(
            ).getRowAndColNumber(locate_element_path,
                                 "objname_locatemethod_locatedata",
                                 secondLocatemethod_key)[1]
            old_second_how = locate_element_sheet.cell_value(
                row_index, secondLocate_colNumber)
            #得到二次定位所需值
            secondLocateData_key = u"二次定位所需数据"
            secondLocateData_colNumber = get_number_by_data.GetRowAndColNumber(
            ).getRowAndColNumber(locate_element_path,
                                 "objname_locatemethod_locatedata",
                                 secondLocateData_key)[1]
            secondLocate_what = locate_element_sheet.cell_value(
                row_index, secondLocateData_colNumber)
            new_second_how = locate_method_dict[old_second_how]

            second_located_element = LocateElementCommonClass.CommonClass(
            ).locateElementIndirectly(browser, new_locate_how, what,
                                      new_second_how, secondLocate_what)

            OperatePayByBalanceElement.OperatePayByBalanceElement(
            ).operatePayElement(element, second_located_element,
                                send_data_list)


# pp=LocatePayByBalanceObject()
# pp.getLocateElementList()