class TestChargeListPage(unittest.TestCase): """交易流水模块-充值""" @classmethod def setUpClass(cls): cls.driver = select_Browser_WebDriver() cls.url = join_url('/charge/listcharge') @unittest.skipIf(getRunFlag('CHARGELIST', 'testCase1') == 'N', '验证执行配置') @ddt.data(*chargeData) @replayCaseFail(num=1) def testCase1(self, data): """充值撤销""" print('功能:{0}'.format(data['desc'])) """前置操作""" #实例化ChargeListPage类 self.charge = ChargeListPage(self.url, self.driver, data['pageTitle']) # 打开目标页 self.charge.open """页面操作""" #单击 撤值撤销链接 self.charge.clickUndoLinkText #单击 确定按钮 self.charge.clickConfirmBtn """断言操作""" #断言成功 txt = self.charge.getChargeStatusTxt print('充值撤销状态:{0}'.format(txt)) self.assertEqual(txt, '撤销充值', msg='撤销充值记录列表中,不存在状态为<撤销充值>的记录') @classmethod def tearDownClass(cls): cls.driver.quit()
class TestNumberCardPage(unittest.TestCase): """次卡消费模块""" @classmethod def setUpClass(cls): cls.driver = select_Browser_WebDriver() cls.url = 'http://pos.beta.acewill.net/numbercard' @unittest.skipIf(getRunFlag('NUMBERCARD', 'testCase1') == 'N', '验证执行配置') @ddt.data(*numberCardData) @replayCaseFail(num=3) def testCase1(self, data): """次卡消费""" print '功能:{0}'.format(data['desc']) #实例化NumberCardPage类 self.number = NumberCardPage(self.url, self.driver, data['title']) # 打开目标地址 self.number.open """输入手机号或卡号进入次卡消费界面""" #输入手机号或卡号 self.number.inputPhoneOrCard(data['phoneOrCard']) #单击 确定按钮 self.number.clickNumberCardButton """次卡消费界面,操作""" #输入 次卡使用次数 self.number.inputNumberUse(data['useNum']) #单击确定按钮,提交 self.number.clickSubmitButton """检查断言""" self.assertTrue(self.number.assertSuccess, msg='检查消费后,返回到,输入手机号界面') #检查消费后,返回到,输入手机号界面 @classmethod def tearDownClass(cls): cls.driver.quit()
class TestConsumeListPage(unittest.TestCase): """交易流水-消费""" @classmethod def setUpClass(cls): cls.driver = select_Browser_WebDriver() cls.url = 'http://pos.beta.acewill.net/consume/list' @unittest.skipIf(getRunFlag('CONSUMELIST', 'testCase1') == 'N', '验证执行配置') @ddt.data(*consumeData) @replayCaseFail(num=3) def testCase1(self, data): """交易流水-撤销消费""" print '功能:{0}'.format(data['desc']) #实例化ConsumeListPage类 self.consumeList = ConsumeListPage(self.url, self.driver, data['consumeListTitle']) # 打开目标地址 self.consumeList.open #单击撤销消费 链接 self.consumeList.clickUndoLinkText #单击 确定按钮 self.consumeList.clickConfirmBtn """断言""" self.assertTrue(self.consumeList.assertCancelSuccess) #断言,弹出撤销成功div框 self.assertEqual(self.consumeList.getContentText, u'撤销消费') #撤销消费,列表中增加一条撤销记录 @classmethod def tearDownClass(cls): cls.driver.quit()
class TestBjPrintPage(unittest.TestCase): """班结小票打印""" @classmethod def setUpClass(cls): cls.driver = select_Browser_WebDriver() cls.url = join_url('/consume/list') @unittest.skipIf(getRunFlag('PRINT', 'testCase1') == 'N', '验证执行配置') @ddt.data(*printData) @replayCaseFail(num=3) def testCase1(self, data): """班结小结打印""" print('功能:{0}'.format(data['desc'])) #实例化BjPrintPage类 self.bjPrint = BjPrintPage(self.url, self.driver, '消费流水 - 微生活POS系统') # 打开交易流水页面 self.bjPrint.open #点击 班结小票链接 self.bjPrint.clickPrintLinkText #点击 打印按钮 self.bjPrint.clickPrintBtn time.sleep(5) #等待3秒 self.bjPrint.switch_window #切换到新窗口 """断言""" self.assertTrue(self.bjPrint.assertPrint) #断言弹出最后打印界面,打印按钮存在 @classmethod def tearDownClass(cls): cls.driver.quit()
class TestCreditListPage(unittest.TestCase): """交易流水模块-积分换礼""" @classmethod def setUpClass(cls): cls.driver = select_Browser_WebDriver() cls.url = 'http://pos.beta.acewill.net/credit/list' @unittest.skipIf(getRunFlag('CREDITLIST', 'testCase1') == 'N', '验证执行配置') @ddt.data(*creditData) @replayCaseFail(num=3) def testCase1(self, data): """交易流水-撤销积分""" print '功能:{0}'.format(data['desc']) #实例化CreditListPage类 self.creditList = CreditListPage(self.url, self.driver, data['CreditListTitle']) # 打开目标地址 self.creditList.open """撤销积分页操作""" #单击 撤销积分 self.creditList.clickUndoLinkText #单击确定 按钮 self.creditList.clickUndoBtn """断言""" self.assertEqual(self.creditList.assertUndoSuccess, '撤销积分换礼') #撤销积分后,在列表显示一条,状态为撤销积分换礼记录 @classmethod def tearDownClass(cls): cls.driver.quit()
class TestNumberCardListPage(unittest.TestCase): """交易流水模块""" @classmethod def setUpClass(cls): cls.driver = select_Browser_WebDriver() cls.url = join_url('/numbercard/list') @unittest.skipIf( getRunFlag('NUMBERCARDLIST', 'testCase1') == 'N', '验证执行配置') @ddt.data(*listCardData) @replayCaseFail(num=3) def testCase1(self, data): """次卡消费撤销""" print('功能:{0}'.format(data['desc'])) #实例化NumberCardListPage类 self.list = NumberCardListPage(self.url, self.driver, data['title']) # 打开目标地址 self.list.open """撤销操作""" #单击撤销消费 self.list.clickUndoLink #单击确定按钮 self.list.clickConfirmButton """检查断言""" self.assertTrue(self.list.assertSuccess) #断言,撤销后,状态是否存在 self.assertEqual(self.list.getUndoStatus, '撤销消费') #断言状态是否为 撤销消费 @classmethod def tearDownClass(cls): cls.driver.quit()
class TestCardIndexPage(unittest.TestCase): """储值售卖模块""" @classmethod def setUpClass(cls): cls.driver = select_Browser_WebDriver() cls.url = getBaseUrl('POS_URL') + '/card/index' cls.excel = Excel( os.path.join(gl.dataPath, 'posChargeCard.xls').decode('utf-8')) @unittest.skipIf(getRunFlag('CARDINDEX', 'testCase1') == 'N', '验证执行配置') @ddt.data(*cardShopData) @replayCaseFail(num=3) def testCase1(self, data): """储值卡售卖-实体储值卡售卖""" print '功能:{0}'.format(data['desc']) """前置初始操作""" #实例化CardIndexPage类 self.card = CardIndexPage(self.url, self.driver, data['pagetitle']) # 打开浏览器并转到指定url self.card.open #从excel获取一条标记为N的卡号 cardNo = float(self.excel.getCardNo( cell_col=0, cell_valueType=1)).__int__().__str__() """储值售卖页面""" #选择储值卡 self.card.selectCardSelect(data['CardType']) #单击储值卡类型 实体卡储值 self.card.clickCardType #输入 储值卡号 self.card.inputCardNo(cardNo) #单击 确定按钮 self.card.clickConfirmBtn #单击 再次确定按钮 self.card.clickSubmitBtn """后置断言操作""" self.card.wait(2000) #点击储值卡类型为 实体卡储值 self.card.clickCardType #输入 储值卡号 self.card.inputCardNo(cardNo) self.assertEqual(self.card.assertChareSuccess, data['assert']) #断言已售的卡不能再售,来判断售卡成功 @classmethod def tearDownClass(cls): cls.driver.quit()
class TestCouponsaleIndexPage(unittest.TestCase): """商品售卖模块""" @classmethod def setUpClass(cls): cls.driver = select_Browser_WebDriver() cls.url = getBaseUrl('POS_URL') +'/couponsale/index' @unittest.skipIf(getRunFlag('COUPONSALEINDEX',('testCase1'))=='N','验证执行配置') @ddt.data(*shopData) @replayCaseFail(num=3) def testCase1(self,data): """商品售卖-券包+次卡+直接购买""" print('功能:{0}'.format(data['desc'])) #实例化CouponsaleIndexPage类 self.shop = CouponsaleIndexPage(self.url,self.driver,data['title']) # 打开目标url self.shop.open """输入会员卡号,或手机号页""" #输入手机号或卡号 self.shop.inputPhoneOrCard(data['phoneOrCard']) #点击 确定按钮 self.shop.clickConfirmBtn """商品售卖页""" #批量 勾选商品复选框 self.shop.clickiterSelect #单击 确定按钮,提交售卖 self.shop.clickShopConfirmBtn #输入交易密码 self.shop.inputPaypwd(data['password']) #交易密码对话框确定 self.shop.clickConfirmPaypwd """后置断言操作""" self.assertTrue(self.shop.assertShopSuccess)#断言售卖成功后,返回到输入卡号或手机号页面 @classmethod def tearDownClass(cls): cls.driver.quit()
class TestCreditPage(unittest.TestCase): """积分兑换模块""" @classmethod def setUpClass(cls): """初始化webdriver""" cls.driver = select_Browser_WebDriver() cls.url = 'http://pos.beta.acewill.net/credit' def creditFunc(self, data): '''输入卡号或手号并点击确定''' self.credit = CreditPage(self.url, self.driver, u"积分换礼 - 微生活POS系统") # 增加cookies信息,并打开积分换礼页 self.credit.open #输入手机号或卡号 self.credit.inputPhoneorCard(data['charge_number']) #单击 确定按钮 self.credit.clickPhoneConfirmBtn @unittest.skipIf(getRunFlag('CREDIT', 'testCase1') == 'N', '验证执行配置') @ddt.data(*creditData) @replayCaseFail(num=3) def testCase1(self, data): '''积分换礼''' print '{0}'.format(data['desc']) # 输入手机号,或卡号,进入积分换礼页面 self.creditFunc(data) #积分规则 self.credit.clickIterCheckBox #积分数量 self.credit.inputCreditNumber(data['ExchangeNumber']) #积分详情 self.credit.inputCreditDetail(data['ExchangeDetail']) #确定按钮 提交 self.credit.clickConfirmBtn # 成功兑换断言 self.credit.assertPaySuccess @classmethod def tearDownClass(cls): cls.driver.quit()
class TestConsumeCouponListPage(unittest.TestCase): """交易流水模块""" @classmethod def setUpClass(cls): cls.driver = select_Browser_WebDriver() cls.url = 'http://pos.beta.acewill.net/consume/couponlist' @unittest.skipIf(getRunFlag('CONSUMECOUPONLIST',('testCase1'))=='N','验证执行配置') @ddt.data(*shopCancelData) @replayCaseFail(num=3) def testCase1(self,data): """交易流水-撤销商品售卖""" print '功能:{0}'.format(data['desc']) #实例化ConsumeCouponListPage类 self.undo = ConsumeCouponListPage(self.url,self.driver,data['title']) # 打开目标url self.undo.open """商品售卖,撤销""" #单击 撤销商口售卖 self.undo.clickUndoLinkText #单击 确定按钮 self.undo.clickUndoConfirmBtn """后置断言操作""" self.assertTrue(self.undo.assertSuccess) self.assertEqual(self.undo.getContentText,'撤销商品售卖') @classmethod def tearDownClass(cls): cls.driver.quit()
class TestChargePage(unittest.TestCase): '''储值模块''' @classmethod def setUpClass(cls): cls.driver = select_Browser_WebDriver() cls.url = join_url('/charge/index') def inChargePage(self, data): """输入卡号进入储值页面""" #实例化ChargePage类 self.charge = ChargePage(self.url, self.driver, data['page_title']) # 打开目标url self.charge.open """输入卡号,确定,进入储值页面""" #输入 卡号 self.charge.inputPhoneOrCardNo((data['charge_number'])) #单击 确定 self.charge.clickConfirmBtn """断言操作""" #储值余额 self.assertTrue(self.charge.assertfindRMB) #储值前的 储值余额 self.usChargeSaving = self.charge.getAfterRMB print('当前余额:{0}'.format(self.usChargeSaving)) def chargeFunc(self, data): """储值功能操作""" print('功能:{0}'.format(data['desc'])) """输入卡号或手机号,确定,进入储值页面""" self.inChargePage(data) """储值操作""" #选择储值奖励规则 self.charge.clickChargeGZ #单击 自定义规则 self.charge.clickCustomGZ #输入 自定义金额 self.charge.inputCustomPresent(data['present']) #点击 自定义金额对话框 确定按钮 self.charge.clickCustomConfirmBtn #点击 现金支付方式 self.charge.clickPayType(data['pay_index']) #输入 备注 self.charge.inputRemark(data['note']) #单击 确定,进入储值确认对话框 self.charge.clickSubmitBtn #单击 确认,并储值 self.charge.clickLastConfirmBtn """断言操作""" self.charge.assertChargeSuccess """后置操作""" #单击 立即消费按钮 self.charge.clickConsumeBtn """断言储值余额,是否正确""" #获取 储值后余额 self.usDualSaving = self.charge.getLastRMB print('储值后当前余额:{0}'.format(self.usDualSaving)) self.assertTrue( float(data['present']) + float(self.usChargeSaving) + 1 == float(self.usDualSaving)) @unittest.skipIf(getRunFlag('CHARGE', 'testCase1') == 'N', '验证执行配置') @ddt.data(*chargeData) @replayCaseFail(num=3) def testCase1(self, data): """正常储值功能""" #调用储值功能函数 self.chargeFunc(data) @unittest.skipIf(getRunFlag('CHARGE', 'testCase2') == 'N', '验证执行配置') @ddt.data(*FillData) @replayCaseFail(num=3) #case执行失败后,重新执行num次 def testCase2(self, data): """储值并补开发票""" # 调用储值功能函数 self.chargeFunc(data) """补开发票""" #单击 补开发票按钮 self.charge.clickFillReceipt #获取 未开票金额 notFillPresent = self.charge.getNotFillPresent(data['txtName']) #输入 开票金额 self.charge.inputFillPresent(str(notFillPresent)) #单击 确定 开发票 self.charge.clickFillConfirmBtn """断言补开票成功""" #单击 补开发票按钮 self.charge.clickFillReceipt #获取 未开票金额 notFillPresent = float(self.charge.getNotFillPresent(data['txtName'])) print('补开发票金额剩余:{0}'.format(notFillPresent)) #断言补开发票后,第一行补开发票为零 self.assertEqual(notFillPresent, float('0.00'), msg='开票余额,不为零.') @unittest.skipIf(getRunFlag('CHARGE', 'testCase3') == 'N', '验证执行配置') @ddt.data(*raise_data) @replayCaseFail(num=3) def testCase3(self, data): """储值功能-自定义金额与储值金额相同""" #调用储值功能函数 """储值功能操作""" print('功能:{0}'.format(data['desc'])) """输入卡号或手机号,确定,进入储值页面""" self.inChargePage(data) """储值操作""" #选择储值奖励规则 self.charge.clickChargeGZ #单击 自定义规则 self.charge.clickCustomGZ #输入 自定义金额 self.charge.inputCustomPresent(data['present']) #点击 自定义金额对话框 确定按钮 self.charge.clickCustomConfirmBtn # #断言 self.assertTrue(self.charge.assert_custom_error()) @classmethod def tearDownClass(cls): cls.driver.quit()
class TestConsumePage(unittest.TestCase): '''消费模块''' @classmethod def setUpClass(cls): cls.driver = select_Browser_WebDriver() cls.url = 'http://pos.beta.acewill.net/consume' cls.excel = Excel( os.path.join(gl.dataPath, 'posCardData.xls').decode('utf-8')) cls.toexcel = Excel( os.path.join(gl.dataPath, 'posNotNameCardData.xls').decode('utf-8')) def consume_func(self, data): '''消费->输入卡号或手机号->确定''' self.consume = ConsumePage(self.url, self.driver, '消费 - 微生活POS系统') # 打开浏览器,并转到消费页 self.consume.open # 选择会员卡号/手机号 self.consume.selectTab # 输入卡号或手机号 self.consume.inputPhoneOrCardNo(data['phoneOrCard']) # 点击确定按钮 self.consume.clickConfirmBtn """消费模块,动态选择券""" def iterCoupon(self): '''动态选择券''' couponDiv = self.driver.find_elements_by_class_name( self.consume.tcCouponDiv_loc) #现金券 for e in couponDiv: divEle = e.find_element_by_xpath(self.consume.tcTicket_loc) if divEle.is_displayed(): divEle.click() # 单击 useCount = self.driver.find_element_by_name( self.consume.tcUseCount) if useCount.is_displayed(): useCount.send_keys(1) break def getCode(self, data): """ 从Boss获取验证码 :param data: 参数化数据 :return: 验证码 """ """参数变量url,cookies,time""" yamldict = getYamlfield(gl.configFile) cookies = yamldict['CONFIG']['Cookies']['BossLoginCookies'] #timeStr = time.strftime('%Y-%m-%d') url = 'http://boss.beta.acewill.net/sms/search?phone={0}&begin={1}&end={2}'.format( data['PhoneNo'], gl.curDate, gl.curDate) """设置浏览器,选项,隐藏获窗口运行""" option = webdriver.ChromeOptions() option.add_argument('disable-infobars') #不显示"Chrome正在受自动测试软件控制" option.add_argument('headless') #后台运行,不显示界面 """启动浏览器,增加cookies""" driver1 = webdriver.Chrome(chrome_options=option) driver1.maximize_window() driver1.get(url) driver1.implicitly_wait(30) driver1.add_cookie(cookies) driver1.get(url) """获取验证码,并返回验证码""" txtcode = driver1.find_element_by_xpath( self.consume.boss_code_xpath).text code = json.loads(txtcode)['template']['yanzhengma'] driver1.quit() return code @unittest.skipIf(getRunFlag('CONSUME', ('testCase1')) == 'N', '验证执行配置') @ddt.data(*cardData) @replayCaseFail(num=3) def testCase1(self, data): '''实体卡开卡''' print '功能:{0}'.format(data['desc']) # 获取卡号 cardNo = {'phoneOrCard': str(self.excel.getCardNo())} print u"实体卡,卡号为:{0}".format(cardNo['phoneOrCard']) #进入消费页面 self.consume_func(cardNo) # 实体卡开卡 self.consume.clickOpenCardIco # 输入手机号 self.consume.inputOpenCardPhone(data['PhoneNo']) # 姓名 self.consume.inputOpenCardName(data['username']) # 性别 self.consume.clickOpenCardSex # 生日 self.consume.inputOpenCardBirthday(data['birthday']) # 交易密码 self.consume.inputOpenPwd(data['password']) # 确定 self.consume.clickOpenConfirmBtn #断言 self.assertTrue(self.consume.assertCardSuccess) @unittest.skipIf(getRunFlag('CONSUME', ('testCase6')) == 'N', '验证执行配置') @ddt.data(*cardofData) @replayCaseFail(num=3) def testCase6(self, data): """不记名卡开卡""" print '功能:{0}'.format(data['desc']) # 获取磁道号 cardNo = {'phoneOrCard': str(self.toexcel.getCardNo(cell_col=0))} #进入消费界面 self.consume_func(cardNo) """开卡页面""" #单击不记名卡,确定 self.consume.clickCardOfOpenBtn """断言操作""" self.assertTrue(self.consume.assertOpenCardSuccess) @unittest.skipIf(getRunFlag('CONSUME', 'testCase5') == 'N', '验证执行配置') @ddt.data(*cardBindData) @replayCaseFail(num=3) def testCase5(self, data): """实体卡绑卡""" print '功能:{0}'.format(data['desc']) # 获取卡号-字典类型 cardNo = {'phoneOrCard': str(self.excel.getCardNo())} #进入绑卡绑卡图标选择页面 self.consume_func(cardNo) #单击绑卡图标 self.consume.clickBindCardIco #输入卡号 self.consume.inputBindCardNo(data['PhoneNo']) #单击 确定 self.consume.clickBindConfirmBtn #获取验证码 code = self.getCode(data) #获取验证码 #输出验证码 print '验证码:{0}'.format(code) #输入验证码 self.consume.inputVerCode(code) #单击 验证码框 确定 self.consume.clickVerCodeConfirmBtn """断言""" self.assertTrue(self.consume.assertCardSuccess, msg='实体卡绑定失败') @unittest.skipIf(getRunFlag('CONSUME', 'testCase2') == 'N', '验证执行配置') @ddt.data(*consumeData) @replayCaseFail(num=3) def testCase2(self, data): '''积分消费''' print u'功能:{0},消费{1}元,抵扣{2}积分.'.format(data['desc'], data['tcTotalFee'], data['credit']) # 进入消费页 self.consume_func(data) #输入金额 self.consume.inputTotalFee(data['tcTotalFee']) #清除储值支付金额 self.consume.clearInputStoredPay #输入积分 self.consume.inputUseCredit(data['credit']) #输入备注 self.consume.inputRemark(data['desc']) #单击确认消费按钮 self.consume.clickConsumeSubmitBtn #单击再次确认按钮 self.consume.clickConsumeConfirmBtn '''输入密码点击确认''' #输入交易密码 self.consume.inputPaypwd(data['dualCode']) #单击交易密码 确定按钮 self.consume.clickConfirmPaypwd self.consume.assertPaySuccess #支付成功断言 @unittest.skipIf(getRunFlag('CONSUME', 'testCase3') == 'N', '验证执行配置') @ddt.data(*chargeDealData) @replayCaseFail(num=3) def testCase3(self, data): '''储值销费''' print u'功能:{0},消费金额{1},储值抵扣{2}元.'.format(data['desc'], data['tcTotalFee'], data['tcTotalFee']) # 进入消费页 self.consume_func(data) # 输入金额 self.consume.inputTotalFee(data['tcTotalFee']) # 输入备注 self.consume.inputRemark(data['desc']) # 确认消费按钮 self.consume.clickConsumeSubmitBtn # 最终确认消费 self.consume.clickConsumeConfirmBtn '''输入密码点击确认''' #输入交易密码 self.consume.inputPaypwd(data['dualCode']) #单击交易密码 确定按钮 self.consume.clickConfirmPaypwd self.consume.assertPaySuccess #支付成功断言 @unittest.skipIf(getRunFlag('CONSUME', 'testCase4') == 'N', '验证执行配置') @ddt.data(*custCouponData) @replayCaseFail(num=3) def testCase4(self, data): '''券消费''' print u'功能:{0},消费{1}积分.'.format(data['desc'], data['tcTotalFee']) # 进入消费页 self.consume_func(data) # 输入金额 self.consume.inputTotalFee(data['tcTotalFee']) # 选择现金券 self.iterCoupon() # 输入备注 self.consume.inputRemark(data['desc']) # 确认消费按钮 self.consume.clickConsumeSubmitBtn # 最终确认消费 self.consume.clickConsumeConfirmBtn '''输入密码点击确认''' #输入交易密码 self.consume.inputPaypwd(data['dualCode']) #单击交易密码 确定按钮 self.consume.clickConfirmPaypwd self.consume.assertPaySuccess #支付成功断言 @classmethod def tearDownClass(cls): cls.driver.quit()
class TestCardIndexPage(unittest.TestCase): """储值售卖模块""" @classmethod def setUpClass(cls): cls.driver = select_Browser_WebDriver() cls.url = join_url('/card/index') cls.excel = Excel( os.path.join( gl.dataPath, 'posChargeCard.xls' ) ) #从excel获取一条标记为N的卡号 cls.cardNo = float( cls.excel.getCardNo(cell_col=0,cell_valueType=1) ).__int__().__str__() @unittest.skipIf( getRunFlag('CARDINDEX', 'testCase1') == 'N', '验证执行配置' ) @ddt.data(*cardShopData) @replayCaseFail(num=1) def testCase1(self,data): """储值卡售卖-实体储值卡售卖""" print('功能:{0}'.format(data['desc'])) """前置初始操作""" #实例化CardIndexPage类 self.card = CardIndexPage( self.url,self.driver, data['pagetitle'] ) # 打开浏览器并转到指定url self.card.open """储值售卖页面""" #选择储值卡 self.card.selectCardSelect(data['CardType']) #单击储值卡类型 实体卡储值 卡类型0.电子卡;1实体储值卡 self.card.click_card_type(data['card_index']) #输入 储值卡号 self.card.inputCardNo(self.cardNo, data['cardno_flag']) #输入电子卡数量 self.card.input_card_num(data['card_num']) #输入微信号 self.card.input_wechat_text(data['wechat_no']) #选择支付类型;0现金;1银行卡;依此类推 self.card.click_pay_type(data['pay_type']) #单击 确定按钮 self.card.clickConfirmBtn #单击 再次确定按钮 self.card.clickSubmitBtn """后置断言操作""" self.card.imp_wait(option=data['wait_off/on'], ms=data['wait_ms']) #点击储值卡类型为 实体卡储值 self.card.click_card_type(data['h_card_index']) #输入 储值卡号 self.card.inputCardNo(self.cardNo, data['cardno_flag']) #断言已售的卡不能再售,来判断售卡成功 self.assertTrue(eval(data['assert'])) #加个等待时间,增加两个用例之间截图准确性 self.card.wait(3000) @classmethod def tearDownClass(cls): cls.driver.quit()