class TestCreateActivityClass(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 = ActivityCreatePage() self.testpageurl = self.testpage.pageurl #测试页面url self.testpagehdmcinput = self.testpage.hdmc_input # ---基础信息---# 活动名称输入框路劲 self.testpagehdlxselect = self.testpage.hdlx_select # ---基础信息---# 活动类型选项框路径 self.testpagehdsjstarttime = self.testpage.hdsj_starttime # ---基础信息---# 活动时间开始时间输入框路径 self.testpagehdsjendtime = self.testpage.hdsj_endtime # ---基础信息---# 活动时间结束时间输入框路径 self.testpagehdysinput = self.testpage.hdys_input # ---基础信息---# 活动预算输入框路径 self.testpagehdbztextarea = self.testpage.hdbz_textarea # ---基础信息---# 活动备注多行输入框路径 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 ######################待上线活动详情页############################### self.activitydetialspage = ActivityDetialsPage() #活动列表页 #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 definecreateactivity(self, num, hdmcinputtext, hdlx, 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) #输入活动名称 #选择活动类型 if hdlx == "1": self.activeweb.findElementByXpathAndClickOptionXpathNum( num, self.testpagehdlxselect, self.testpage.hdlx_select_lx_option) # 选择活动类型选择拉新 elif hdlx == "2": self.activeweb.findElementByXpathAndClickOptionXpathNum( num, self.testpagehdlxselect, self.testpage.hdlx_select_ch_option) # 选择活动类型选择促活 elif hdlx == "3": self.activeweb.findElementByXpathAndClickOptionXpathNum( num, self.testpagehdlxselect, self.testpage.hdlx_select_lc_option) # 选择活动类型选择留存 elif hdlx == "4": self.activeweb.findElementByXpathAndClickOptionXpathNum( num, self.testpagehdlxselect, self.testpage.hdlx_select_zh_option) # 选择活动类型选择转化 elif hdlx == "5": self.activeweb.findElementByXpathAndClickOptionXpathNum( num, self.testpagehdlxselect, self.testpage.hdlx_select_tsbc_option) # 选择活动类型选择投诉补偿 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) #输入活动预算 self.activeweb.findElementByXpathAndInputNum( num, self.testpagehdbztextarea, hdbztextareainputtext) #输入活动备注 #填入活动奖励部分 if jllx == "1": self.activeweb.findElementByXpathAndClickOptionXpathNum( num, self.testpagejllxselect, self.testpage.jllx_select_gdjl_option) # 选择奖励类型为固定奖励 self.activeweb.findElementByXpathAndClickNum( num, self.testpagewtjlp) # 点击添加礼品文字链接(还未添加礼品) #进入创建优惠券页,新建优惠券 #第一部分 self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.ffzt_kq_checkbox) # 点击发放状态开始对应的选项框 self.activeweb.findElementByXpathAndClickOptionXpathNum( num, self.ticketcreatepage_qyxq_select, self.ticketcreatepage.qyxq_select_option_xdsj) # 选择券有效期选项为相对时间 self.activeweb.findElementByXpathAndInputNum( num, self.ticketcreatepage.qyxq_select_option_xdsj_ts_input, "2") # 输入相对时间为2天 self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.yxcbcdf_pt_checkbox) # 点击营销成本承担方中的平台前的选项框 self.activeweb.findElementByXpathAndInputNum( num, self.ticketcreatepage_yhqsm_areatext, "开启-不限库存数-相对时间(相对2天)-平台-代金券-固定金额(面值2000)-不限最低消费-使用平台(点选QRindo)-不限使用范围-支持退券" ) # 输入优惠券说明 #第二部分 self.activeweb.findElementByXpathAndInputNum( num, self.ticketcreatepage_yhqmc_input, "test_优惠券_%s" % GetTimeStr().getTimeStr()) # 添加优惠券名称 self.activeweb.findElementByXpathAndClickOptionXpathNum( num, self.ticketcreatepage_yhlx_select, self.ticketcreatepage.yhlx_option_djq) #优惠类型选择代金券 self.activeweb.findElementByXpathAndClickOptionXpathNum( num, self.ticketcreatepage_yhms_select, self.ticketcreatepage.yhms_select_option_gdje) #优惠模式选择固定金额 self.activeweb.findElementByXpathAndInputNum( num, self.ticketcreatepage.yhms_select_option_gdje_mz_input, "2000") # 面值输入2000 if ISXIANGWANG: if not self.activeweb.findElementByXpath( self.ticketcreatepage.sypt_mbmpay_checkbox).is_selected(): self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.sypt_mbmpay_checkbox) # 使用平台点选mbmpay if self.activeweb.findElementByXpath( self.ticketcreatepage.sypt_mydisrupto_checkbox ).is_selected(): self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.sypt_mydisrupto_checkbox ) # 使用平台点选mydisrupto if self.activeweb.findElementByXpath( self.ticketcreatepage.sypt_QRindo_checkbox).is_selected(): self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.sypt_QRindo_checkbox) # 使用平台点选QRindo else: self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.sypt_mbmpay_checkbox) # 使用平台点选mbmpay self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.sypt_mydisrupto_checkbox ) # 使用平台点选mydisrupto self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.sypt_QRindo_checkbox) # 使用平台点选QRindo self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.sypt_qrindomerchantcashier_checkbox ) # 使用平台点选qrindomerchantcashier self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.sypt_PaySDK_checkbox) # 使用平台点选PaySDK self.activeweb.findElementByXpathAndClickOptionXpathNum( num, self.ticketcreatepage_syfw_select, self.ticketcreatepage.syfw_select_option_bx) #使用范围选择不限 # self.activeweb.findElementByXpathAndClickNum(num, self.ticketcreatepage.kfyqthddj_bkdjsy_checkbox) # 可否与其他活动叠加点选不可叠加使用 self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.sfzctq_kt_checkbox) # 是否支持退券点选可退 self.activeweb.findElementByXpathAndScriptClickNum( num, self.ticketcreatepage.confirm_button) #点击确定按钮 ################################优惠券创建完成######################################### # self.activeweb.delayTime(1000) if iscancel: self.activeweb.findElementByXpathAndScriptClickNum( num, self.testpagecancelbutton) # 点击取消按钮 else: self.activeweb.findElementByXpathAndScriptClickNum( num, self.testpagesubmitbutton) # 点击提交按钮 # 断言活动列表中是否有新增加的活动 self.defineisintable(num, self.activitylistpage_searchtableresult, hdmcinputtext, 1) #获取活动ID self.activeweb.findElementByXpathAndScriptClickNum( num, self.activitylistpage.table_justone_content_dsx_xq ) # 点击列表中第一行中的"详情" getid = self.activeweb.findElementByXpathAndReturnText( num, self.activitydetialspage.hdid) self.activeweb.outPutMyLog("新建活动id:%s" % getid) #保存活动id filename = "createactivityid.txt" GetTimeStr().writeText(filename, getid) # filename = 'createactivityid.txt' # GetTimeStr().writeText(filename,getid) 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, hdlx, hdysinputtext, tfqdyj, tfqdej, hdbztextareainputtext, rwlx, tjrwxz, jyjylx, jyzffs, jymgyhzdcycsinputtext, jymgyhmrcycsinputtext, jllx, iscancel): def func(self): self.definecreateactivity(num, hdmcinputtext, hdlx, hdysinputtext, tfqdyj, tfqdej, hdbztextareainputtext, rwlx, tjrwxz, jyjylx, jyzffs, jymgyhzdcycsinputtext, jymgyhmrcycsinputtext, jllx, iscancel) return func
class TestEditActivityClass(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) # 打开网址 if ISONLINE: self.activeweb.findElementByXpathAndInput( LoginPage().account, ONLINE_MANAGER_LOGIN_ACCOUNT) self.activeweb.findElementByXpathAndInput( LoginPage().password, ONLINE_MANAGER_LOGIN_PASSWORD) else: self.activeweb.findElementByXpathAndInput( LoginPage().account, TEST_MANAGER_LOGIN_ACCOUNT) self.activeweb.findElementByXpathAndInput( LoginPage().password, TEST_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 defineeditactivity(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 ISONLINE: # 点击投放渠道二级渠道第一个选项 if not self.activeweb.findElementByXpath( 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.findElementByXpath( 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.findElementByXpath( self.testpage.tfqd_select_nbqd_fxk_qrindo_checkbox ).is_selected(): self.activeweb.findElementByXpathAndClickNum( num, self.testpage.tfqd_select_nbqd_fxk_qrindo_checkbox) else: 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.findElementByXpathAndClickNum( num, self.testpagewtjlp) # 点击添加礼品文字链接(还未添加礼品) #进入创建优惠券页,新建优惠券 #第一部分 self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.ffzt_kq_checkbox) # 点击发放状态开始对应的选项框 self.activeweb.findElementByXpathAndClickOptionXpathNum( num, self.ticketcreatepage_qyxq_select, self.ticketcreatepage.qyxq_select_option_xdsj) # 选择券有效期选项为相对时间 self.activeweb.findElementByXpathAndInputNum( num, self.ticketcreatepage.qyxq_select_option_xdsj_ts_input, "2") # 输入相对时间为2天 self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.yxcbcdf_pt_checkbox) # 点击营销成本承担方中的平台前的选项框 self.activeweb.findElementByXpathAndInputNum( num, self.ticketcreatepage_yhqsm_areatext, "开启-不限库存数-相对时间(相对2天)-平台-代金券-固定金额(面值2000)-不限最低消费-使用平台(点选QRindo)-不限使用范围-支持退券" ) # 输入优惠券说明 #第二部分 self.activeweb.findElementByXpathAndInputNum( num, self.ticketcreatepage_yhqmc_input, "优惠券_%s" % GetTimeStr().getTimeStr()) # 添加优惠券名称 self.activeweb.findElementByXpathAndClickOptionXpathNum( num, self.ticketcreatepage_yhlx_select, self.ticketcreatepage.yhlx_option_djq) #优惠类型选择代金券 self.activeweb.findElementByXpathAndClickOptionXpathNum( num, self.ticketcreatepage_yhms_select, self.ticketcreatepage.yhms_select_option_gdje) #优惠模式选择固定金额 self.activeweb.findElementByXpathAndInputNum( num, self.ticketcreatepage.yhms_select_option_gdje_mz_input, "2000") # 面值输入2000 if ISONLINE: #点击使用平台第一个选项 if not self.activeweb.findElementByXpath( self.ticketcreatepage.sypt_mbmpay_checkbox).is_selected(): self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.sypt_mbmpay_checkbox) # 使用平台点选mbmpay if self.activeweb.findElementByXpath( self.ticketcreatepage.sypt_mydisrupto_checkbox ).is_selected(): self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.sypt_mydisrupto_checkbox ) # 使用平台点选mydisrupto if self.activeweb.findElementByXpath( self.ticketcreatepage.sypt_QRindo_checkbox).is_selected(): self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.sypt_QRindo_checkbox) # 使用平台点选QRindo else: self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.sypt_mbmpay_checkbox) # 使用平台点选mbmpay self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.sypt_mydisrupto_checkbox ) # 使用平台点选mydisrupto self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.sypt_QRindo_checkbox) # 使用平台点选QRindo self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.sypt_qrindomerchantcashier_checkbox ) # 使用平台点选qrindomerchantcashier self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.sypt_PaySDK_checkbox) # 使用平台点选PaySDK self.activeweb.findElementByXpathAndClickOptionXpathNum( num, self.ticketcreatepage_syfw_select, self.ticketcreatepage.syfw_select_option_bx) #使用范围选择不限 # self.activeweb.findElementByXpathAndClickNum(num, self.ticketcreatepage.kfyqthddj_bkdjsy_checkbox) # 可否与其他活动叠加点选不可叠加使用 self.activeweb.findElementByXpathAndClickNum( num, self.ticketcreatepage.sfzctq_kt_checkbox) # 是否支持退券点选可退 self.activeweb.findElementByXpathAndScriptClickNum( num, self.ticketcreatepage.confirm_button) #点击确定按钮 ################################优惠券创建完成######################################### # self.activeweb.delayTime(5000) 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.defineeditactivity(num, hdmcinputtext, hdysinputtext, tfqdyj, tfqdej, hdbztextareainputtext, rwlx, tjrwxz, jyjylx, jyzffs, jymgyhzdcycsinputtext, jymgyhmrcycsinputtext, jllx, iscancel) return func
class TestCreateTicketClass(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) # 打开网址 if ISONLINE: self.activeweb.findElementByXpathAndInput( LoginPage().account, ONLINE_MANAGER_LOGIN_ACCOUNT) self.activeweb.findElementByXpathAndInput( LoginPage().password, ONLINE_MANAGER_LOGIN_PASSWORD) else: self.activeweb.findElementByXpathAndInput( LoginPage().account, TEST_MANAGER_LOGIN_ACCOUNT) self.activeweb.findElementByXpathAndInput( LoginPage().password, TEST_MANAGER_LOGIN_PASSWORD) self.activeweb.findElementByXpathAndClick(LoginPage().loginbutton) self.activeweb.delayTime(3) self.testpage = TicketCreatePage() # 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.activitycreatepage = ActivityCreatePage() self.activitycreatepage_pageurl = self.activitycreatepage.pageurl self.activitycreatepage_w_tjlp = self.activitycreatepage.w_tjlp # ---活动奖励---# 未添加礼品时,“添加礼品”文字链接路径 #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.activitycreatepage_pageurl) self.activeweb.delayTime(3) #创建活动 #填入基础信息部分 self.activeweb.findElementByXpathAndInputNum( num, self.activitycreatepage.hdmc_input, yhqmcinputtext) #输入活动名称 self.activeweb.findElementByXpathAndClickAbountData( num, self.activitycreatepage.hdsj_starttime, self.activitycreatepage.hdsj_starttime_daytime, pathright=self.activitycreatepage.hdsj_starttime_rightmove, pathconfirm=self.activitycreatepage.hdsj_starttime_queding ) #点选活动时间开始时间 self.activeweb.findElementByXpathAndClickAbountData( num, self.activitycreatepage.hdsj_endtime, self.activitycreatepage.hdsj_endtime_daytime, pathright=self.activitycreatepage.hdsj_endtime_rightmove, pathconfirm=self.activitycreatepage.hdsj_endtime_queding ) #点选活动时间结束时间 self.activeweb.findElementByXpathAndInputNum( num, self.activitycreatepage.hdys_input, "2000") #输入活动预算 self.activeweb.findElementByXpathAndClickOptionXpathNum( num, self.activitycreatepage.tfqd_select, self.activitycreatepage.tfqd_select_nbqd_option) # 投放渠道一级渠道选择内部渠道 if ISONLINE: # 点击投放渠道二级渠道第一个选项 if not self.activeweb.findElementByXpath( self.activitycreatepage. tfqd_select_nbqd_fxk_mbmpay_checkbox).is_selected(): self.activeweb.findElementByXpathAndClickNum( num, self.activitycreatepage. tfqd_select_nbqd_fxk_mbmpay_checkbox) if self.activeweb.findElementByXpath( self.activitycreatepage. tfqd_select_nbqd_fxk_mydisrupto_checkbox).is_selected(): self.activeweb.findElementByXpathAndClickNum( num, self.activitycreatepage. tfqd_select_nbqd_fxk_mydisrupto_checkbox) if self.activeweb.findElementByXpath( self.activitycreatepage. tfqd_select_nbqd_fxk_qrindo_checkbox).is_selected(): self.activeweb.findElementByXpathAndClickNum( num, self.activitycreatepage. tfqd_select_nbqd_fxk_qrindo_checkbox) else: # 点选投放渠道二级渠道全部项复选框 self.activeweb.findElementByXpathAndClickNum( num, self.activitycreatepage.tfqd_select_nbqd_fxk_mbmpay_checkbox) self.activeweb.findElementByXpathAndClickNum( num, self.activitycreatepage. tfqd_select_nbqd_fxk_mydisrupto_checkbox) self.activeweb.findElementByXpathAndClickNum( num, self.activitycreatepage.tfqd_select_nbqd_fxk_qrindo_checkbox) self.activeweb.findElementByXpathAndClickNum( num, self.activitycreatepage. tfqd_select_nbqd_fxk_qrindomerchantcashier_checkbox) self.activeweb.findElementByXpathAndClickNum( num, self.activitycreatepage.tfqd_select_nbqd_fxk_paysdk_checkbox) #填入活动任务规则部分 self.activeweb.findElementByXpathAndClickOptionXpathNum( num, self.activitycreatepage.rwlx_select, self.activitycreatepage.rwlx_select_jx_option) # 任务类型选择交易 self.activeweb.findElementByXpathAndClickNum( num, self.activitycreatepage.jy_wcjy_jylx_checkbox) # 点击交易类型全选框 #创建活动页,点击“添加礼品”文字链接 self.activeweb.findElementByXpathAndClickNum( num, self.activitycreatepage_w_tjlp) # 点击添加礼品文字链接(还未添加礼品) #进入创建优惠券页,新建优惠券 #第一部分 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 ISONLINE: #点击使用平台第一个选项 if not self.activeweb.findElementByXpath( self.testpage.sypt_mbmpay_checkbox).is_selected(): self.activeweb.findElementByXpathAndClickNum( num, self.testpage.sypt_mbmpay_checkbox) # 使用平台点选mbmpay if self.activeweb.findElementByXpath( self.testpage.sypt_mydisrupto_checkbox).is_selected(): self.activeweb.findElementByXpathAndClickNum( num, self.testpage.sypt_mydisrupto_checkbox) # 使用平台点选mydisrupto if self.activeweb.findElementByXpath( 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) # 点击批量添加商户批量导入文件 self.activeweb.delayTime(6) 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.defineisintable(num, self.activitycreatepage.y_jllp_table, yhqmcinputtext, 1) ################################优惠券创建完成######################################### if iscancel: self.activeweb.findElementByXpathAndScriptClickNum( num, self.activitycreatepage.cancelbutton) # 点击取消按钮 else: self.activeweb.findElementByXpathAndScriptClickNum( num, self.activitycreatepage.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
class TestInputTipClass(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) # 打开网址 if ISONLINE: self.activeweb.findElementByXpathAndInput(LoginPage().account,ONLINE_MANAGER_LOGIN_ACCOUNT) self.activeweb.findElementByXpathAndInput(LoginPage().password,ONLINE_MANAGER_LOGIN_PASSWORD) else: self.activeweb.findElementByXpathAndInput(LoginPage().account,TEST_MANAGER_LOGIN_ACCOUNT) self.activeweb.findElementByXpathAndInput(LoginPage().password,TEST_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完成") def defineclickinputdeleteicon(self,num,inputxpath,inputdelecticonxpath): self.activeweb.findElementByXpathAndClickNum(num, inputxpath) self.activeweb.delayTime(2) self.activeweb.findElementByXpathAndClickNum(num, inputdelecticonxpath) #定义inputtip函数 def defineinputtip(self,num,isinput=None,inputxpath=None, inputtext=None,inputtipxpath=None,inputtiptext=None): self.activeweb.getUrl(self.testpageurl) self.activeweb.delayTime(3) self.defineclickinputdeleteicon(num,self.testpage.hdmc_input,self.testpage.hdmc_input_delect_icon) # 删除活动名称输入框中的内容 self.defineclickinputdeleteicon(num,self.testpage.hdsj_starttime,self.testpage.hdsj_starttime_delete_icon) #删除活动开始时间内容 self.defineclickinputdeleteicon(num, self.testpage.hdsj_endtime,self.testpage.hdsj_endtime_delete_icon) # 删除活动结束时间内容 self.defineclickinputdeleteicon(num, self.testpage.hdys_input, self.testpage.hdys_input_delete_icon) # 删除活动预算输入框中的内容 if ISONLINE: # 投放渠道二级渠道不选中任何内容 if self.activeweb.findElementByXpath(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.findElementByXpath( 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.findElementByXpath( self.testpage.tfqd_select_nbqd_fxk_qrindo_checkbox).is_selected(): self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_nbqd_fxk_qrindo_checkbox) else: if self.activeweb.findElementByXpath(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.findElementByXpath( 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.findElementByXpath( 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.findElementByXpath( 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.findElementByXpath( self.testpage.tfqd_select_nbqd_fxk_paysdk_checkbox).is_selected(): self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tfqd_select_nbqd_fxk_paysdk_checkbox) self.activeweb.findElementByXpathAndClickOptionXpathNum(num, self.testpagerwlxselect, self.testpage.rwlx_select_jx_option) # 任务类型选择交易 #不选择交易类型 if self.activeweb.findElementByXpath( self.testpage.jy_wcjy_jylx_fxk_xf_checkbox).is_selected(): self.activeweb.findElementByXpathAndClickNum(num, self.testpage.jy_wcjy_jylx_fxk_xf_checkbox) # 点击交易类型-消费前选择框 if self.activeweb.findElementByXpath( self.testpage.jy_wcjy_jylx_fxk_cz_checkbox).is_selected(): self.activeweb.findElementByXpathAndClickNum(num, self.testpage.jy_wcjy_jylx_fxk_cz_checkbox) # 点击交易类型-充值前选择框 if self.activeweb.findElementByXpath( self.testpage.jy_wcjy_jylx_fxk_zz_checkbox).is_selected(): self.activeweb.findElementByXpathAndClickNum(num, self.testpage.jy_wcjy_jylx_fxk_zz_checkbox) # 点击交易类型-转账前选择框 # self.activeweb.delayTime(5000) #点击用户活动参与次数 self.activeweb.findElementByXpathAndClickNum(num, self.testpage.tjxz) # 点击添加限制文字链接 # self.activeweb.delayTime(5000) self.activeweb.findElementByXpathAndClickNum(num, self.testpage.rwmb_popup_yhhdcycs_option) # 点击添加限制弹框中的用户活动参与次数 #是否输入input内容 if isinput: if inputxpath != None and inputtext !=None: self.activeweb.findElementByXpathAndInputNum(num, inputxpath, inputtext) # 输入input内容 self.activeweb.findElementByXpathAndScriptClickNum(num, self.testpagesubmitbutton) # 点击提交按钮 # self.activeweb.delayTime(5000) self.defineasserttextnum(num,inputtipxpath,inputtiptext) #断言tip实际内容是否与预期内容一致 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,isinput,inputxpath, inputtext,inputtipxpath,inputtiptext): def func(self): self.defineinputtip(num,isinput,inputxpath, inputtext,inputtipxpath,inputtiptext) return func