コード例 #1
0
class TestDeleteTicketClass(unittest.TestCase):  # 创建测试类

    @classmethod  # 类方法,只执行一次,但必须要加注解@classmethod,且名字固定为setUpClass
    def setUpClass(cls):
        # from base.getcookie import GetCookie
        # outjsonfile = "../../../cookiejson/cookiemanager.json"
        # outloginurl = LoginPage().pageurl
        # outloginaccountxpath = LoginPage().account
        # outloginaccounttext = "81122336666"
        # outloginppasswordxpath = LoginPage().password
        # outloginpasswordtext = "abc123456"
        # outloginbuttonxpath = LoginPage().loginbutton
        #
        # getcookie = GetCookie(outjsonfile=outjsonfile, outloginurl=outloginurl,
        #                       outloginaccountxpath=outloginaccountxpath,
        #                       outloginaccounttext=outloginaccounttext, outloginppasswordxpath=outloginppasswordxpath,
        #                       outloginpasswordtext=outloginpasswordtext,
        #                       outloginbuttonxpath=outloginbuttonxpath)  # 实例化
        # getcookie.writerCookieToJson()

        pass

    @classmethod  # 类方法,只执行一次,但必须要加注解@classmethod,且名字固定为tearDownClass
    def tearDownClass(cls):
        pass

    def setUp(self):  # 每条用例执行测试之前都要执行此方法
        # self.jsonfile = '../../../cookiejson/cookieagent.json'
        # self.operationjson = OperationJson(file_path=self.jsonfile)   #实例化
        # self.cookie = self.operationjson.get_all_data()
        # print("self.cookie:%s" % self.cookie)
        self.activeweb = ActiveWeb()  # 实例化
        self.loginurl = LoginPage().pageurl
        self.activeweb.getUrl(self.loginurl)  # 打开网址
        self.activeweb.findElementByXpathAndInput(LoginPage().account,MANAGER_LOGIN_ACCOUNT)
        self.activeweb.findElementByXpathAndInput(LoginPage().password,MANAGER_LOGIN_PASSWORD)
        self.activeweb.findElementByXpathAndClick(LoginPage().loginbutton)
        self.activeweb.delayTime(3)
        self.testpage = ActivityEditPage()
        self.testpageurl =self.testpage.pageurl   #测试页面url
        self.testpagehdmcinput = self.testpage.hdmc_input       # ---基础信息---#   活动名称输入框路劲
        self.testpagehdsjstarttime = self.testpage.hdsj_starttime # ---基础信息---#   活动时间开始时间输入框路径
        self.testpagehdsjendtime = self.testpage.hdsj_endtime  # ---基础信息---#   活动时间结束时间输入框路径
        self.testpagehdysinput  = self.testpage.hdys_input   # ---基础信息---#   活动预算输入框路径
        self.testpagetfqdselect = self.testpage.tfqd_select   # ---基础信息---#  投放渠道下拉框路径
        self.testpagehdbztextarea = self.testpage.hdbz_textarea   # ---基础信息---#  活动备注多行输入框路径
        self.testpagerwlxselect = self.testpage.rwlx_select       # ---活动任务规则---# 任务类型下拉框路径
        self.testpagejllxselect = self.testpage.jllx_select     # ---活动奖励---# 奖励类型下拉框路径
        self.testpagewtjlp = self.testpage.w_tjlp    # ---活动奖励---# 未添加礼品时,“添加礼品”文字链接路径

        self.testpagecancelbutton = self.testpage.cancelbutton   #取消按钮
        self.testpagesubmitbutton = self.testpage.submitbutton   #提交按钮

        ######################创建优惠券页面###############################
        self.ticketcreatepage = TicketCreatePage()   #创建优惠券页
        self.ticketcreatepage_kcsl_input  = self.ticketcreatepage.kcsl_input   #第一部分# 库存数量输入框路径
        self.ticketcreatepage_qyxq_select = self.ticketcreatepage.qyxq_select   #第一部分# 券有效期选择框路径
        self.ticketcreatepage_yhqsm_areatext  = self.ticketcreatepage.yhqsm_areatext    #第一部分# 优惠券说明多行输入框路径
        self.ticketcreatepage_yhqmc_input = self.ticketcreatepage.yhqmc_input    #第二部分# 优惠券名称输入框路径
        self.ticketcreatepage_yhlx_select = self.ticketcreatepage.yhlx_select    #第二部分# 优惠类型选择框路径
        self.ticketcreatepage_yhms_select = self.ticketcreatepage.yhms_select    #第二部分# 优惠模式选择框路径
        self.ticketcreatepage_zdxf_input = self.ticketcreatepage.zdxf_input    #第二部分# 最低消费输入框路径
        self.ticketcreatepage_zfqdxz_select  = self.ticketcreatepage.zfqdxz_select     #第二部分# 支付渠道限制选择框路径
        self.ticketcreatepage_syfw_select   = self.ticketcreatepage.syfw_select     #第二部分# 使用范围选择框路径

        self.ticketcreatepage_confirm_button = self.ticketcreatepage.confirm_button   #页面 确定按钮

        ######################活动列表页###############################
        self.activitylistpage = ActivityListPage()   #活动列表页
        self.activitylistpage_searchtableresult = self.activitylistpage.searchtableresult


        #pass


    def tearDown(self):  # 每条用例执行测试之后都要执行此方法
        self.activeweb.closeBrowse()
        # pass

    def writexunicookie(self):
        addcookie = {'name': '.nereus.manager.settle.banks', 'value': 'QCK9GvKG8OEOh6lRUyyLlmKnHl8i3w'}
        self.activeweb.driver.add_cookie(addcookie)
        self.activeweb.driver.refresh()
        self.activeweb.delayTime(5)
        self.activeweb.outPutMyLog("写入虚拟银行cookie完成")

    #定义创建活动,
    #投放渠道一级为1表示内部渠道,为2表示外部渠道
    #投放渠道二级为0表示全选,为1,2,等表示选一项和选多项组合,程序中只有全选和选择一项的情况
    # 任务类型为1表示注册,为2表示交易类型
    #奖励类型1表示固定奖励
    def definedeleteticket(self,num,
                             hdmcinputtext,hdysinputtext,
                             tfqdyj, tfqdej,hdbztextareainputtext,
                             rwlx,tjrwxz,
                             jyjylx, jyzffs,
                             jymgyhzdcycsinputtext,jymgyhmrcycsinputtext,
                             jllx,iscancel):
        self.activeweb.getUrl(self.testpageurl)
        self.activeweb.delayTime(3)

        #创建活动
        #填入基础信息部分
        self.activeweb.findElementByXpathAndInputNum(num,self.testpagehdmcinput, hdmcinputtext)   #输入活动名称
        self.activeweb.findElementByXpathAndClickAbountData(num,self.testpagehdsjstarttime,self.testpage.hdsj_starttime_daytime,pathright=self.testpage.hdsj_starttime_rightmove,pathconfirm=self.testpage.hdsj_starttime_queding)   #点选活动时间开始时间
        self.activeweb.findElementByXpathAndClickAbountData(num,self.testpagehdsjendtime ,self.testpage.hdsj_endtime_daytime,pathright=self.testpage.hdsj_endtime_rightmove,pathconfirm=self.testpage.hdsj_endtime_queding)   #点选活动时间结束时间
        self.activeweb.findElementByXpathAndInputNum(num,self.testpagehdysinput, hdysinputtext)   #输入活动预算
        if tfqdyj =="1":
            self.activeweb.findElementByXpathAndClickOptionXpathNum(num,self.testpagetfqdselect,self.testpage.tfqd_select_nbqd_option)  # 投放渠道一级渠道选择内部渠道
            if tfqdej == "0":  # 点击投放渠道二级渠道所有项复选框
                if not self.activeweb.getEleImage(num,self.testpage.tfqd_select_nbqd_fxk_mbmpay_checkbox).is_selected():
                    self.activeweb.findElementByXpathAndClickNum(num,self.testpage.tfqd_select_nbqd_fxk_mbmpay_checkbox)
                if not self.activeweb.getEleImage(num,self.testpage.tfqd_select_nbqd_fxk_mydisrupto_checkbox).is_selected():
                    self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_nbqd_fxk_mydisrupto_checkbox)
                if not self.activeweb.getEleImage(num,self.testpage.tfqd_select_nbqd_fxk_qrindo_checkbox).is_selected():
                    self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_nbqd_fxk_qrindo_checkbox)
                if not self.activeweb.getEleImage(num,self.testpage.tfqd_select_nbqd_fxk_qrindomerchantcashier_checkbox).is_selected():
                    self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_nbqd_fxk_qrindomerchantcashier_checkbox)
                if not self.activeweb.getEleImage(num,self.testpage.tfqd_select_nbqd_fxk_qrindomerchantcashier_checkbox).is_selected():
                    self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_nbqd_fxk_paysdk_checkbox)
            else:
                if self.activeweb.getEleImage(num,self.testpage.tfqd_select_nbqd_fxk_mbmpay_checkbox).is_selected():
                    self.activeweb.findElementByXpathAndClickNum(num,self.testpage.tfqd_select_nbqd_fxk_mbmpay_checkbox)
                if self.activeweb.getEleImage(num,self.testpage.tfqd_select_nbqd_fxk_mydisrupto_checkbox).is_selected():
                    self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_nbqd_fxk_mydisrupto_checkbox)
                if self.activeweb.getEleImage(num,self.testpage.tfqd_select_nbqd_fxk_qrindo_checkbox).is_selected():
                    self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_nbqd_fxk_qrindo_checkbox)
                if self.activeweb.getEleImage(num,self.testpage.tfqd_select_nbqd_fxk_qrindomerchantcashier_checkbox).is_selected():
                    self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_nbqd_fxk_qrindomerchantcashier_checkbox)
                if self.activeweb.getEleImage(num,self.testpage.tfqd_select_nbqd_fxk_qrindomerchantcashier_checkbox).is_selected():
                    self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_nbqd_fxk_paysdk_checkbox)

                if tfqdej == "1":
                    self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_nbqd_fxk_mbmpay_checkbox)   #点选投放渠道二级渠道mbmpay项复选框
                elif tfqdej == "2":
                    self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_nbqd_fxk_mydisrupto_checkbox)   #点选投放渠道二级渠道mydisrupto项复选框
                elif tfqdej == "3":
                    self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_nbqd_fxk_qrindo_checkbox)   #点选投放渠道二级渠道qrindo项复选框
                elif tfqdej == "4":
                    self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_nbqd_fxk_qrindomerchantcashier_checkbox)   #点选投放渠道二级渠道qrindomerchantcashier项复选框
                elif tfqdej == "5":
                    self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_nbqd_fxk_paysdk_checkbox)   #点选投放渠道二级渠道paysdk项复选框

        # elif tfqdyj =="2":
        #     self.activeweb.findElementByXpathAndClickOptionXpathNum(num,self.testpagetfqdselect,self.testpage.tfqd_select_wbqd_option)  # 投放渠道一级渠道选择外部渠道
        #     if tfqdej == '0':# 点击投放渠道二级渠道所有项复选框
        #         self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_wbqd_fxk_app_checkbox)
        #         self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_wbqd_fxk_web_checkbox)
        #         self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_wbqd_fxk_sdk_checkbox)
        #     elif tfqdej == "1":
        #         self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_wbqd_fxk_app_checkbox)   #点选投放渠道二级渠道app项复选框
        #     elif tfqdej == "2":
        #         self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_wbqd_fxk_web_checkbox)   #点选投放渠道二级渠道web项复选框
        #     elif tfqdej == "3":
        #         self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_wbqd_fxk_web_checkbox)   #点选投放渠道二级渠道sdk项复选框

        self.activeweb.findElementByXpathAndInputNum(num,self.testpagehdbztextarea, hdbztextareainputtext)   #输入活动备注

        #填入活动任务规则部分
        if rwlx == "1":
            self.activeweb.findElementByXpathAndClickOptionXpathNum(num,self.testpagerwlxselect,self.testpage.rwlx_select_zc_option)  # 任务类型选择注册
        elif rwlx=='2':
            self.activeweb.findElementByXpathAndClickOptionXpathNum(num, self.testpagerwlxselect,self.testpage.rwlx_select_jx_option)  # 任务类型选择交易

            if jyjylx == "0":
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.jy_wcjy_jylx_checkbox)  #点击交易类型全选框
            elif jyjylx == "1":
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.jy_wcjy_jylx_fxk_xf_checkbox)  # 点击交易类型-消费前选择框
            elif jyjylx == "2":
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.jy_wcjy_jylx_fxk_cz_checkbox)  # 点击交易类型-充值前选择框
            elif jyjylx == "3":
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.jy_wcjy_jylx_fxk_zz_checkbox)  # 点击交易类型-转账前选择框

            #点击添加限制文字链接
            if tjrwxz == "1":
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tjxz)  # 点击添加限制文字链接
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.rwmb_popup_jylx_option)  # 点击添加限制弹框中的交易类型
            elif tjrwxz == "2":
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tjxz)  # 点击添加限制文字链接
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.rwmb_popup_zffs_option)  # 点击添加限制弹框中的支付方式
            elif tjrwxz == "3":
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tjxz)  # 点击添加限制文字链接
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.rwmb_popup_yhhdcycs_option)  # 点击添加限制弹框中的用户活动参与次数
            elif tjrwxz == "4":
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tjxz)  # 点击添加限制文字链接
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.rwmb_popup_zffs_option)  # 点击添加限制弹框中的支付方式
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tjxz)  # 点击添加限制文字链接
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.rwmb_popup_yhhdcycs_option)  # 点击添加限制弹框中的用户活动参与次数



            if jyzffs == "0":
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.jy_wcjy_zffs_checkbox)  #点击支付方式全选框
            elif jyzffs == "1":
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.jy_wcjy_zffs_fxk_qbye_checkbox)  # 点击支付方式-钱包余额前选择框
            elif jyzffs == "2":
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.jy_wcjy_zffs_fxk_yhk_checkbox)  # 点击支付方式-银行卡前选择框
            elif jyzffs == "3":
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.jy_wcjy_zffs_fxk_yhkhq_checkbox)  # 点击支付方式-银行卡+券前选择框
            elif jyzffs == "4":
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.jy_wcjy_zffs_fxk_yehq_checkbox)  # 点击支付方式-余额+券前选择框
            elif jyzffs == "5":
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.jy_wcjy_zffs_fxk_vahspg_checkbox)  # 点击支付方式-VA或SPG支付前选择框

            print("jymgyhzdcycsinputtext:%s" % jymgyhzdcycsinputtext)
            if jymgyhzdcycsinputtext != None:
                self.activeweb.findElementByXpathAndInputNum(num, self.testpage.jy_wcjy_yhhdcycs_mgyhzdcycs_input, jymgyhzdcycsinputtext)  # 输入每个用户最多参与次数
            if jymgyhmrcycsinputtext != None:
                self.activeweb.findElementByXpathAndInputNum(num, self.testpage.jy_wcjy_yhhdcycs_mgyhmrcycs_input, jymgyhmrcycsinputtext)  # 输入每个用户每日参与次数

        #填入活动奖励部分
        if jllx =="1":
            self.activeweb.findElementByXpathAndClickOptionXpathNum(num,self.testpagejllxselect,self.testpage.jllx_select_gdjl_option)  # 选择奖励类型为固定奖励

        self.activeweb.findElementByXpathAndScriptClickNum(num, self.testpage.y_jllp_table_cz_just_two_first_delete)  # 点击奖励礼品中的第一条数据中"删除"
        # self.activeweb.delayTime(5000)
        self.activeweb.findElementByXpathAndScriptClickNum(num, self.testpage.delete_popup_confirm)   #点击删除弹框中的确认按钮


        if iscancel:
            self.activeweb.findElementByXpathAndScriptClickNum(num, self.testpagecancelbutton)  # 点击取消按钮
        else:
            self.activeweb.findElementByXpathAndScriptClickNum(num, self.testpagesubmitbutton)  # 点击提交按钮
            # 断言活动列表中是否有新增加的活动
            self.defineisintable(num, self.activitylistpage_searchtableresult, hdmcinputtext, 1)





    def defineasserttextnum(self,num,testelexpath,expecttext):
        #断言是否存在某个文本
        testtext = self.activeweb.findElementByXpathAndReturnText(num,testelexpath)
        self.assertEqual(expecttext,testtext)
        self.activeweb.outPutMyLog("存在text:%s"%testtext)

    def defineisintable(self,num,testtablexpath,expecttext,tablecolnum):
        notexsitflag = True
        tabledic = self.activeweb.findElementByXpathAndReturnTableNum(num, testtablexpath)
        for value in tabledic.values():
            # self.activeweb.outPutMyLog("%s"% value[int(tablecolnum)])
            if str(expecttext).lower() in value[int(tablecolnum)].lower():
                self.assertTrue(True)
                self.activeweb.outPutMyLog("在【%s】中存在:【%s】"% (value[int(tablecolnum)],expecttext))
                notexsitflag = False
                break
        if notexsitflag:
            self.activeweb.outPutMyLog("在【%s】不存在:【%s】"% (tabledic,expecttext))
            self.assertTrue(False)



    @staticmethod    #根据不同的参数生成测试用例
    def getTestFunc(num,hdmcinputtext,hdysinputtext,
                    tfqdyj, tfqdej,hdbztextareainputtext,
                    rwlx,tjrwxz,
                    jyjylx, jyzffs,
                    jymgyhzdcycsinputtext,jymgyhmrcycsinputtext,
                    jllx,iscancel):
        def func(self):
            self.definedeleteticket(num,
                             hdmcinputtext,hdysinputtext,
                             tfqdyj, tfqdej,hdbztextareainputtext,
                             rwlx,tjrwxz,
                             jyjylx, jyzffs,
                             jymgyhzdcycsinputtext,jymgyhmrcycsinputtext,
                             jllx,iscancel)
        return func
コード例 #2
0
class TestEditTicketClass(unittest.TestCase):  # 创建测试类

    @classmethod  # 类方法,只执行一次,但必须要加注解@classmethod,且名字固定为setUpClass
    def setUpClass(cls):
        # from base.getcookie import GetCookie
        # outjsonfile = "../../../cookiejson/cookiemanager.json"
        # outloginurl = LoginPage().pageurl
        # outloginaccountxpath = LoginPage().account
        # outloginaccounttext = "81122336666"
        # outloginppasswordxpath = LoginPage().password
        # outloginpasswordtext = "abc123456"
        # outloginbuttonxpath = LoginPage().loginbutton
        #
        # getcookie = GetCookie(outjsonfile=outjsonfile, outloginurl=outloginurl,
        #                       outloginaccountxpath=outloginaccountxpath,
        #                       outloginaccounttext=outloginaccounttext, outloginppasswordxpath=outloginppasswordxpath,
        #                       outloginpasswordtext=outloginpasswordtext,
        #                       outloginbuttonxpath=outloginbuttonxpath)  # 实例化
        # getcookie.writerCookieToJson()

        pass

    @classmethod  # 类方法,只执行一次,但必须要加注解@classmethod,且名字固定为tearDownClass
    def tearDownClass(cls):
        pass

    def setUp(self):  # 每条用例执行测试之前都要执行此方法
        # self.jsonfile = '../../../cookiejson/cookieagent.json'
        # self.operationjson = OperationJson(file_path=self.jsonfile)   #实例化
        # self.cookie = self.operationjson.get_all_data()
        # print("self.cookie:%s" % self.cookie)
        self.activeweb = ActiveWeb()  # 实例化
        self.loginurl = LoginPage().pageurl
        self.activeweb.getUrl(self.loginurl)  # 打开网址
        self.activeweb.findElementByXpathAndInput(LoginPage().account,MANAGER_LOGIN_ACCOUNT)
        self.activeweb.findElementByXpathAndInput(LoginPage().password,MANAGER_LOGIN_PASSWORD)
        self.activeweb.findElementByXpathAndClick(LoginPage().loginbutton)
        self.activeweb.delayTime(3)

        self.testpage = TicketEditPage()
        self.testpageurl =self.testpage.pageurl   #测试页面url
        self.testpagekcslinput  = self.testpage.kcsl_input   #第一部分# 库存数量输入框路径
        self.testpageqyxqselect = self.testpage.qyxq_select   #第一部分# 券有效期选择框路径
        self.testpageyhqsmareatext  = self.testpage.yhqsm_areatext    #第一部分# 优惠券说明多行输入框路径
        self.testpageyhqmcinput = self.testpage.yhqmc_input    #第二部分# 优惠券名称输入框路径
        self.testpageyhlxselect = self.testpage.yhlx_select    #第二部分# 优惠类型选择框路径
        self.testpageyhmsselect = self.testpage.yhms_select    #第二部分# 优惠模式选择框路径
        self.testpagezdxfinput = self.testpage.zdxf_input    #第二部分# 最低消费输入框路径
        self.testpagezfqdxzselect  = self.testpage.zfqdxz_select     #第二部分# 支付渠道限制选择框路径
        self.testpagesyfwselect   = self.testpage.syfw_select     #第二部分# 使用范围选择框路径

        self.testpagecancelbutton = self.testpage.cancel_button # 页面取消按钮
        self.testpageconfirmbutton = self.testpage.confirm_button  # 页面确定按钮

        ######################编辑活动页面###############################
        self.activityeditpage = ActivityEditPage()
        self.activityeditpage_pageurl = self.activityeditpage.pageurl

        #pass
        ######################活动列表页###############################
        self.activitylistpage = ActivityListPage()   #活动列表页
        self.activitylistpage_searchtableresult = self.activitylistpage.searchtableresult


    def tearDown(self):  # 每条用例执行测试之后都要执行此方法
        self.activeweb.closeBrowse()
        # pass

    def writexunicookie(self):
        addcookie = {'name': '.nereus.manager.settle.banks', 'value': 'QCK9GvKG8OEOh6lRUyyLlmKnHl8i3w'}
        self.activeweb.driver.add_cookie(addcookie)
        self.activeweb.driver.refresh()
        self.activeweb.delayTime(5)
        self.activeweb.outPutMyLog("写入虚拟银行cookie完成")

    #定义创建活动,
    #发放状态为1表示开启,否则为关闭
    #券有效期为1表示相对时间,否则为绝对时间
    #营销成本承担方为1表示平台,否则为商户
    #优惠类型为1表示代金券
    #优惠模式为1表示固定金额,否则为随机金额
    #支付渠道限制为1表示不限,为2表示钱包余额,为3表示银行卡支付
    #使用平台为0表示两个都点选,1表示点选QRindo,为2表示点选PaySDK
    #使用范围为1表示不限,为2表示指定行业,为3表示指定商户
    #是否支持退券为1表示可退,为2表示不可退

    def definecreateticket(self,num,ffzt,kcslinputtext,qyxq,
                           xdsjtsinputtext,
                           yxcbcdf,yhqmcinputtext,yhlx,
                           yhms,gdjemzinputtext,sjjemzmiminputtext,sjjemzmimaxinputtext,
                           zdxfinputtext,sypt,
                           syfw,zdhyoptionxpath,zdshinputtext,isplsh,plfilepath,
                           sfzctq,iscancel):
        self.activeweb.getUrl(self.activityeditpage_pageurl)
        self.activeweb.delayTime(3)
        #创建活动
        #填入基础信息部分
        self.activeweb.findElementByXpathAndInputNum(num,self.activityeditpage.hdmc_input, yhqmcinputtext)   #输入活动名称
        self.activeweb.findElementByXpathAndClickAbountData(num,self.activityeditpage.hdsj_starttime,self.activityeditpage.hdsj_starttime_daytime,pathright=self.activityeditpage.hdsj_starttime_rightmove,pathconfirm=self.activityeditpage.hdsj_starttime_queding)   #点选活动时间开始时间
        self.activeweb.findElementByXpathAndClickAbountData(num,self.activityeditpage.hdsj_endtime ,self.activityeditpage.hdsj_endtime_daytime,pathright=self.activityeditpage.hdsj_endtime_rightmove,pathconfirm=self.activityeditpage.hdsj_endtime_queding)   #点选活动时间结束时间
        self.activeweb.findElementByXpathAndInputNum(num,self.activityeditpage.hdys_input, "2000")   #输入活动预算

        #编辑活动页,点击奖励礼品列表中的“edit”进入券编辑页
        self.activeweb.findElementByXpathAndClickNum(num, self.activityeditpage.y_jllp_table_cz_just_one_edit)  # 点击只有一个奖品时,奖品对应的编辑

        #进入创建优惠券页,新建优惠券
        #第一部分
        if ffzt == "1":
            self.activeweb.findElementByXpathAndClickNum(num, self.testpage.ffzt_kq_checkbox)  # 点击发放状态开始对应的选项框
        else:
            self.activeweb.findElementByXpathAndClickNum(num, self.testpage.ffzt_gb_checkbox)  # 点击发放状态关闭对应的选项框
        if kcslinputtext !=None:
            self.activeweb.findElementByXpathAndInputNum(num, self.testpagekcslinput,kcslinputtext) # 输入库存数量
        if qyxq == "1":
            self.activeweb.findElementByXpathAndClickOptionXpathNum(num,self.testpageqyxqselect,self.testpage.qyxq_select_option_xdsj)  # 选择券有效期选项为相对时间
            self.activeweb.findElementByXpathAndInputNum(num, self.testpage.qyxq_select_option_xdsj_ts_input, xdsjtsinputtext)  # 输入相对时间
        else:
            self.activeweb.findElementByXpathAndClickOptionXpathNum(num,self.testpageqyxqselect,self.testpage.qyxq_select_option_jdsj)  # 选择券有效期选项为绝对时间
            self.activeweb.findElementByXpathAndClickAbountData(num, self.testpage.qyxq_select_option_jdsj_starttime,self.testpage.qyxq_select_option_jdsj_starttime_daytime,
                                                                pathright=self.testpage.qyxq_select_option_jdsj_starttime_pathright)  # 点选活动时间开始时间
            self.activeweb.findElementByXpathAndClickAbountData(num, self.testpage.qyxq_select_option_jdsj_endtime,self.testpage.qyxq_select_option_jdsj_endtime_daytime,
                                                                pathright=self.testpage.qyxq_select_option_jdsj_endtime_pathright)  # 点选活动时间结束时间
        if yxcbcdf == "1":
             self.activeweb.findElementByXpathAndClickNum(num, self.testpage.yxcbcdf_pt_checkbox)  # 点击营销成本承担方中的平台前的选项框
        else:
            self.activeweb.findElementByXpathAndClickNum(num, self.testpage.yxcbcdf_sh_checkbox)  # 点击营销成本承担方中的商户前的选项框

        self.activeweb.findElementByXpathAndInputNum(num, self.testpageyhqsmareatext,
        "%s(发放状态为1表示开启,否则为关闭)- 库存数量:【%s】-%s(券有效期为1表示相对时间(相对天数:【%s】),否则为绝对时间)-%s(营销成本承担方为1表示平台,否则为商户)-%s(优惠类型为1表示代金券)-%s(优惠模式为1表示固定金额,否则为随机金额)-(1-面值:【%s】;2-面值最小值为:【%s】,最大值为:【%s】)-最低消费:【%s】-%s(使用平台为1表示QRindo,为2表示PaySDK)-%s(使用范围为1表示不限,为2表示指定行业,为3表示指定商户)-%s(是否支持退券为1表示可退,为2表示不可退)"
                                                     % (ffzt,kcslinputtext,qyxq,xdsjtsinputtext,yxcbcdf,yhlx,yhms,gdjemzinputtext,sjjemzmiminputtext,
                                                        sjjemzmimaxinputtext,zdxfinputtext,sypt,syfw,sfzctq))  # 输入优惠券说明
        #第二部分
        self.activeweb.findElementByXpathAndInputNum(num, self.testpageyhqmcinput,yhqmcinputtext)  # 添加优惠券名称
        if yhlx == "1":
            self.activeweb.findElementByXpathAndClickOptionXpathNum(num, self.testpageyhlxselect,self.testpage.yhlx_option_djq)   #优惠类型选择代金券

        if yhms == "1":
            self.activeweb.findElementByXpathAndClickOptionXpathNum(num, self.testpageyhmsselect,self.testpage.yhms_select_option_gdje)   #优惠模式选择固定金额
            self.activeweb.findElementByXpathAndInputNum(num, self.testpage.yhms_select_option_gdje_mz_input,gdjemzinputtext)  # 面值输入
        else:
            self.activeweb.findElementByXpathAndClickOptionXpathNum(num, self.testpageyhmsselect,self.testpage.yhms_select_option_sjje)  # 优惠模式选择随机金额
            self.activeweb.findElementByXpathAndInputNum(num, self.testpage.yhms_select_option_sjje_mz_min_input,sjjemzmiminputtext)  # 面值最小值输入
            self.activeweb.findElementByXpathAndInputNum(num, self.testpage.yhms_select_option_sjje_mz_max_input,sjjemzmimaxinputtext)  # 面值最大值输入
        if zdxfinputtext != None:
            self.activeweb.findElementByXpathAndInputNum(num, self.testpage.zdxf_input,zdxfinputtext) # 输入最低消费金额

        if ISXIANGWANG:
            if not self.activeweb.getEleImage(num, self.testpage.sypt_mbmpay_checkbox).is_selected():
                self.activeweb.findElementByXpathAndClickNum(num,
                                                             self.testpage.sypt_mbmpay_checkbox)  # 使用平台点选mbmpay
            if self.activeweb.getEleImage(num, self.testpage.sypt_mydisrupto_checkbox).is_selected():
                self.activeweb.findElementByXpathAndClickNum(num,
                                                             self.testpage.sypt_mydisrupto_checkbox)  # 使用平台点选mydisrupto
            if self.activeweb.getEleImage(num, self.testpage.sypt_QRindo_checkbox).is_selected():
                self.activeweb.findElementByXpathAndClickNum(num,
                                                             self.testpage.sypt_QRindo_checkbox)  # 使用平台点选QRindo
        else:
            if sypt == "0":
                self.activeweb.findElementByXpathAndClickNum(num,self.testpage.sypt_QRindo_checkbox)  # 使用平台点选QRindo
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.sypt_PaySDK_checkbox)  # 使用平台点选PaySDK
            elif sypt == "1":
                self.activeweb.findElementByXpathAndClickNum(num,self.testpage.sypt_QRindo_checkbox)  # 使用平台点选QRindo
            elif sypt == "2":
                self.activeweb.findElementByXpathAndClickNum(num,self.testpage.sypt_PaySDK_checkbox)  # 使用平台点选PaySDK

        if syfw == "1":
            self.activeweb.findElementByXpathAndClickOptionXpathNum(num, self.testpagesyfwselect,self.testpage.syfw_select_option_bx)   #使用范围选择不限
        elif syfw == "2":
            self.activeweb.findElementByXpathAndClickOptionXpathNum(num, self.testpagesyfwselect,self.testpage.syfw_select_option_zdhy)   #使用范围选择指定行业
            self.activeweb.findElementByXpathAndClickOptionXpathNum(num, self.testpage.syfw_select_option_zdhy_select,self.testpage.syfw_select_option_zdhy_select_option_one) # 指定行业选择一个行业
            self.activeweb.findElementByXpathAndClickNum(num,
                                                         self.testpage.syfw_select_option_zdhy_select)  # 再次点击指定行业选择框
        elif syfw == "3":
            self.activeweb.findElementByXpathAndClickOptionXpathNum(num, self.testpagesyfwselect,self.testpage.syfw_select_option_zdsh)   #使用范围选择指定商户
            if isplsh:
                self.activeweb.findElementByXpathAndAndFileNumVue(num,
                                                             self.testpage.syfw_select_option_zdsh_pltjsh_button,plfilepath)  # 点击批量添加商户批量导入文件
            else:
                self.activeweb.findElementByXpathAndInputNum(num, self.testpage.syfw_select_option_zdsh_input,zdshinputtext)  # 输入商户
                self.activeweb.delayTime(3)
                self.activeweb.findElementByXpathAndClickNum(num,
                                                             self.testpage.syfw_select_option_zdsh_input_option_one)  # 点击商户输入框下拉列表第一项
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.syfw_select_option_zdsh_tjsh_button)  # 点击添加商户按钮


        if sfzctq == "1":
            self.activeweb.findElementByXpathAndClickNum(num, self.testpage.sfzctq_kt_checkbox)  # 是否支持退券点选可退
        elif sfzctq == "2":
            self.activeweb.findElementByXpathAndClickNum(num, self.testpage.sfzctq_bkt_checkbox)  # 是否支持退券点选不可退
        if iscancel:
            self.activeweb.findElementByXpathAndClickNum(num, self.testpagecancelbutton)  # 点击取消按钮
        else:
            if syfw == "1":
                self.activeweb.findElementByXpathAndClickNum(num, self.testpageconfirmbutton)  # 点击确定按钮
            elif syfw == "2":
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.confirm_button_zdsh)  # 点击确定按钮
            elif syfw =="3":
                self.activeweb.findElementByXpathAndClickNum(num, self.testpage.confirm_button_zdsh)   #点击确定按钮

            # self.activeweb.delayTime(5000)
            # 断言进入活动编辑页
            self.activeweb.findElementByXpathAndReturnText(num,self.activityeditpage.y_jllp_table_cz_just_one_edit)  # 查找到“编辑”
        ################################优惠券创建完成#########################################

        if iscancel:
            self.activeweb.findElementByXpathAndScriptClickNum(num, self.activityeditpage.cancelbutton)  # 点击取消按钮
        else:

            self.activeweb.findElementByXpathAndScriptClickNum(num, self.activityeditpage.submitbutton)  # 点击提交按钮
            # 断言活动列表中是否有新增加的活动
            self.defineisintable(num, self.activitylistpage_searchtableresult,yhqmcinputtext , 1)


    def defineasserttextnum(self,num,testelexpath,expecttext):
        #断言是否存在某个文本
        testtext = self.activeweb.findElementByXpathAndReturnText(num,testelexpath)
        self.assertEqual(expecttext,testtext)
        self.activeweb.outPutMyLog("存在text:%s"%testtext)

    def defineisintable(self,num,testtablexpath,expecttext,tablecolnum):
        notexsitflag = True
        tabledic = self.activeweb.findElementByXpathAndReturnTableNum(num, testtablexpath)
        for value in tabledic.values():
            # self.activeweb.outPutMyLog("%s"% value[int(tablecolnum)])
            if str(expecttext).lower() in value[int(tablecolnum)].lower():
                self.assertTrue(True)
                self.activeweb.outPutMyLog("在%s中存在text:%s"% (value[int(tablecolnum)],expecttext))
                notexsitflag = False
                break
        if notexsitflag:
            self.activeweb.outPutMyLog("在%s不存在:%s"% (tabledic,expecttext))
            self.assertTrue(False)


    @staticmethod    #根据不同的参数生成测试用例
    def getTestFunc(num,ffzt,kcslinputtext,qyxq,
                           xdsjtsinputtext,
                           yxcbcdf,yhqmcinputtext,yhlx,
                           yhms,gdjemzinputtext,sjjemzmiminputtext,sjjemzmimaxinputtext,
                           zdxfinputtext,sypt,
                           syfw,zdhyoptionxpath,zdshinputtext,isplsh,plfilepath,
                           sfzctq,iscancel):
        def func(self):
            self.definecreateticket(num,ffzt,kcslinputtext,qyxq,
                           xdsjtsinputtext,
                           yxcbcdf,yhqmcinputtext,yhlx,
                           yhms,gdjemzinputtext,sjjemzmiminputtext,sjjemzmimaxinputtext,
                           zdxfinputtext,sypt,
                           syfw,zdhyoptionxpath,zdshinputtext,isplsh,plfilepath,
                           sfzctq,iscancel)
        return func