class Expire_Page(BasePage): assertlist = ['请选择一项查看'] ''' 到期提醒 ''' # 合同管理 contract = (By.XPATH, eleData.readExcel(17, 3)) # 合同管理列表 contractul = (By.XPATH, eleData.readExcel(452, 3)) # 选框 全选 选择一项 check_box = [(By.XPATH, eleData.readExcel(602, 3)), (By.XPATH, eleData.readExcel(603, 3))] #所有地区,查看明细 button = [(By.XPATH, eleData.readExcel(605, 3)), (By.XPATH, eleData.readExcel(606, 3))] # 验证 右上角验证 明细窗口 msg_list = [(By.XPATH, eleData.readExcel(598, 3)), (By.XPATH, eleData.readExcel(604, 3))] def inexpirepage(self): ''' 进入到期提醒页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) # 左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_74_a').click() # 点击合同管理 time.sleep(1) contractul = self.findElement(*self.contractul) contractul.find_element_by_id('sidebarTree_78').click() # 点击到期提醒 time.sleep(1) log.logger.info('page[%s] :found the menu [%s] and [%s]' % (sys._getframe().f_code.co_name, self.menuList[0], self.contractul))
class DetailQuery_Page(BasePage): ''' 银行流水查询 ''' # 银农直联系统 Silverfarmers = (By.XPATH, eleData.readExcel(14, 3)) # 银农直联列表 Silverfarmersul = (By.XPATH, '//*[@id="sidebarTree_23_ul"]') # 综合查询 detailQuery = (By.XPATH, eleData.readExcel(232, 3)) # 综合查询页面 detailQuerypage = (By.XPATH, eleData.readExcel(342, 3)) #点击元素 button_list = \ [(By.XPATH, eleData.readExcel(361, 3)),#打开选择银行0 (By.XPATH, eleData.readExcel(362, 3)),#选择银行1 (By.XPATH, eleData.readExcel(363, 3)),#查询2 (By.XPATH, eleData.readExcel(364, 3)),#打印3 (By.XPATH, eleData.readExcel(365, 3))]#导出4 #验证 msg = \ [(By.XPATH, eleData.readExcel(366, 3)),#查询验证0 (By.XPATH, eleData.readExcel(367, 3))]#打印验证1 def indetailQuery(self): ''' 进入综合查询页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) # 左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_23_a').click() # 点击银农直联系统 time.sleep(1) Silverfarmersul = self.findElement(*self.Silverfarmersul) Silverfarmersul.find_element_by_xpath('//*[@id="sidebarTree_36_span"]').click() # 点击综合查询 time.sleep(1) log.logger.info('page[%s] :found the menu [%s] and [%s]' % ( sys._getframe().f_code.co_name, self.menuList[0], self.Silverfarmersul))
class SwitchPage(BasePage): ''' 风格切换 ''' # 基础功能列表 functionList = (By.ID, eleData.readExcel(18, 3)) #切换横版、切换竖版、验证 element = [(By.XPATH, eleData.readExcel(221, 3)), (By.XPATH, eleData.readExcel(222, 3)), (By.XPATH, eleData.readExcel(223, 3)), (By.XPATH, eleData.readExcel(224, 3)), (By.XPATH, eleData.readExcel(225, 3))] def inSwitchPage(self): ''' 进入风格切换页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) # 左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_16_a').click() # 点击基础功能维护 time.sleep(1) menu_list = self.findElement(*self.functionList) menu_list.find_element_by_xpath( '//*[@id="sidebarTree_21_a"]').click() # 点击风格切换 time.sleep(1) log.logger.info('page[%s] :found the menu [%s] and [%s]' % (sys._getframe().f_code.co_name, self.menuList[0], self.functionList)) def cBtn(self, button): ''' 点击按钮 :return: ''' btn = self.findElement(*button) try: btn.click() except Exception: log.logger.exception('can not the button ', exc_info=True) raise else: log.logger.info('page[%s]:clicking the button [%s]' % (sys._getframe().f_code.co_name, button))
class DetailaCcount_page(BasePage): ''' 明细账 ''' # 合同管理 contract = (By.XPATH, eleData.readExcel(17, 3)) # 合同管理列表 contractul = (By.XPATH, eleData.readExcel(452,3)) #合同台账列表 accountsul = (By.XPATH, eleData.readExcel(692,3)) # 统计 statistics = (By.XPATH, eleData.readExcel(469, 3)) # 查询数据 valuesList = [queryData.readExcel(33, 1), (queryData.readExcel(34, 1)), queryData.readExcel(35, 1), queryData.readExcel(36, 1)] # 查询条件 合同号,合同名称,客户名称,合同年限 query_list = [(By.XPATH, eleData.readExcel(668, 3)), (By.XPATH, eleData.readExcel(669, 3)), (By.XPATH, eleData.readExcel(670, 3)), (By.XPATH, eleData.readExcel(671, 3))] #点击 所有地区 查询 第一条数据查看 button_list = [(By.XPATH, eleData.readExcel(666, 3)), (By.XPATH, eleData.readExcel(667, 3)), (By.XPATH,'//*[@id="mychart1"]/tbody/tr[1]/td[11]/a'), (By.XPATH, '//*[@id="hand_man"]'),#经手人 (By.XPATH, '//*[@id="searchForm"]/div[7]/select')]#收款状态 #经手人 handledby = [(By.XPATH, eleData.readExcel(672, 3)),#请选择 (By.XPATH, eleData.readExcel(673, 3)),#管理员 (By.XPATH, eleData.readExcel(674, 3)),#曲盼盼 (By.XPATH, eleData.readExcel(675, 3)),#孙宏 (By.XPATH, eleData.readExcel(676, 3))]#刘佳 #收款状态 paymentstatus = [(By.XPATH, eleData.readExcel(677, 3)),#请选择 (By.XPATH, eleData.readExcel(678, 3)),#正常履约 (By.XPATH, eleData.readExcel(679, 3)),#已终止 (By.XPATH, eleData.readExcel(680, 3)),#超期未收 (By.XPATH, eleData.readExcel(681, 3))]#待收款 #时间控件 time_list = [(By.XPATH, eleData.readExcel(682, 3)),#签订日期始0 (By.XPATH, eleData.readExcel(683, 3)),#签订日期止1 (By.XPATH, eleData.readExcel(684, 3)),#前一年2 (By.XPATH, eleData.readExcel(685, 3)),#选择日3 (By.XPATH, eleData.readExcel(686, 3)),#前一月4 (By.XPATH, eleData.readExcel(687, 3)),#选择日5 (By.XPATH, eleData.readExcel(688, 3))]#确定6 #验证 msg_list = [(By.XPATH, eleData.readExcel(689, 3)),#查询验证 (By.XPATH, eleData.readExcel(690, 3)),#时间查询验证 (By.XPATH, eleData.readExcel(691, 3))]#明细窗口 assertlist = ['显示第 1 到第 0 条记录,总共 0 条记录', '显示第 1 到第 5 条记录,总共 5 条记录', '显示第 1 到第 10 条记录,总共 294 条记录' ] def indetailaccountpage(self): ''' 进入明细账页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) # 左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_74_a').click() # 点击合同管理 time.sleep(1) ele = self.findElement(*self.statistics) # 定位到元素 self.driver.execute_script('arguments[0].scrollIntoView(false)', ele) time.sleep(1) contractul = self.findElement(*self.contractul) contractul.find_element_by_id('sidebarTree_83_a').click() # 点击合同台账 time.sleep(2) accountsul = self.findElement(*self.contractul) accountsul.find_element_by_id('sidebarTree_85').click() # 明细账 time.sleep(1) log.logger.info('page[%s] :found the menu [%s] and [%s]' % ( sys._getframe().f_code.co_name, self.menuList[0], self.contractul)) # 输入查询条件 def iQueryCondition(self, contractinformation, value): """ :param contractinformation: :param value: :return: """ contract_information = self.findElement(*contractinformation) try: contract_information.clear() contract_information.send_keys(str(value)) except Exception: log.logger.exception('input value error', exc_info=True) raise else: log.logger.info('[%s] is typing value [%s] ' % (contractinformation, value)) # 获取条件输入框的内容 def getInputboxValue(self, *query_list): ''' :param query_list: :return: ''' try: get_query_text = self.findElement(*query_list) text = get_query_text.get_attribute('value') except Exception: log.logger.exception('get value of element fail', exc_info=True) raise else: log.logger.info('get value [%s] of element [%s] success' % (query_list, text)) return text # 重置功能的重写 def reset(self): """ :return: """ try: self.findElement(*self.query_list[0]).clear() self.findElement(*self.query_list[1]).clear() self.findElement(*self.query_list[2]).clear() self.findElement(*self.query_list[3]).clear() except Exception: log.logger.exception('reset fail', exc_info=True) raise else: log.logger.info('reset [%s]-[%s]-[%s]-[%s] success' % ( self.query_list[0], self.query_list[1], self.query_list[2], self.query_list[3])) # 经手人,收款状态下拉选项 def contractOption(self, *xpathList): """ :param xpath_list: :return: """ try: contract_option = self.findElement(*xpathList) text = contract_option.text except Exception: log.logger.exception('get element contract_option item text fail', exc_info=True) raise else: log.logger.info('get element [%s] contract_option item text [%s] fail' % (xpathList, text)) return text, contract_option
class MessagerEceiver_Page(BasePage): ''' 预警短信接收人 ''' # 合同管理 contract = (By.XPATH, eleData.readExcel(17, 3)) # 合同管理列表 contractul = (By.XPATH, eleData.readExcel(452, 3)) valueList = (13764901222) reason = time.strftime('%Y-%m-%d:%H-%M-%S') + '测试' #查询数据 valuesList = [(queryData.readExcel(31, 1)), (queryData.readExcel(32, 1))] # 查询条件 姓名 备注 query_list = [(By.XPATH, eleData.readExcel(607, 3)), (By.XPATH, eleData.readExcel(608, 3))] # 断言数据 assertlist = [ '显示第 1 到第 0 条记录,总共 0 条记录', '请选择一项查看', '测试', '测试人员', '手机号不能为空', '不能为空', '请输入正确的手机号', '新增成功!', '请选中一项内容!', '请选中一项内容进行操作!', '修改成功!', '删除成功!' ] #输入框 input_list = [ (By.XPATH, eleData.readExcel(609, 3)), #姓名(增0 (By.XPATH, eleData.readExcel(610, 3)), #手机号(增1 (By.XPATH, eleData.readExcel(611, 3)), #备注(增2 (By.XPATH, eleData.readExcel(612, 3)), #姓名(改3 (By.XPATH, eleData.readExcel(613, 3)), #手机号(改4 (By.XPATH, eleData.readExcel(614, 3)) ] #备注(改5 #选择框 全选 一项 checkbox = [(By.XPATH, eleData.readExcel(615, 3)), (By.XPATH, eleData.readExcel(616, 3))] #点击 button_list = [ (By.XPATH, eleData.readExcel(617, 3)), #查询0 (By.XPATH, eleData.readExcel(618, 3)), #新增1 (By.XPATH, eleData.readExcel(619, 3)), #修改2 (By.XPATH, eleData.readExcel(620, 3)), #删除3 (By.XPATH, eleData.readExcel(621, 3)), #新增提交4 (By.XPATH, eleData.readExcel(622, 3)), #新增取消5 (By.XPATH, eleData.readExcel(623, 3)), #修改提交6 (By.XPATH, eleData.readExcel(624, 3)), #修改取消7 (By.XPATH, eleData.readExcel(625, 3)), #删除确定8 (By.XPATH, eleData.readExcel(626, 3)) ] #删除取消9 #验证 msg_list = [ (By.XPATH, eleData.readExcel(627, 3)), #右上角验证0 (By.XPATH, eleData.readExcel(628, 3)), #查询验证1 (By.XPATH, eleData.readExcel(629, 3)), #新增窗口2 (By.XPATH, eleData.readExcel(630, 3)), #修改窗口3 (By.XPATH, eleData.readExcel(631, 3)), #删除窗口4 (By.XPATH, eleData.readExcel(632, 3)), #为空验证5 (By.XPATH, eleData.readExcel(633, 3)), #不正规手机号验证(增6 (By.XPATH, eleData.readExcel(634, 3)), #手机号为空(增7 (By.XPATH, eleData.readExcel(635, 3)), #姓名为空提示(增8 (By.XPATH, eleData.readExcel(636, 3)), #姓名为空提示(改9 (By.XPATH, eleData.readExcel(637, 3)), #手机号为空(改10 (By.XPATH, eleData.readExcel(638, 3)), #不规则手机号(改11 (By.XPATH, eleData.readExcel(639, 3)), #备注为空(改12 (By.XPATH, eleData.readExcel(640, 3)), #删除验证13 (By.XPATH, eleData.readExcel(600, 3)) ] #错误查询验证14 def inmessagereceiverpage(self): ''' 进入预警短信接收人页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) # 左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_74_a').click() # 点击合同管理 time.sleep(1) contractul = self.findElement(*self.contractul) contractul.find_element_by_id('sidebarTree_79').click() # 点击预警短信接收人 time.sleep(1) log.logger.info('page[%s] :found the menu [%s] and [%s]' % (sys._getframe().f_code.co_name, self.menuList[0], self.contractul)) def iQueryCondition(self, messagereceiver, value): """ :param contractinformation: :param value: :return: """ message_receiver = self.findElement(*messagereceiver) try: message_receiver.clear() message_receiver.send_keys(str(value)) except Exception: log.logger.exception('input value error', exc_info=True) raise else: log.logger.info('[%s] is typing value [%s] ' % (messagereceiver, value)) # 获取条件输入框的内容 def getInputboxValue(self, *query_list): ''' :param query_list: :return: ''' try: get_query_text = self.findElement(*query_list) text = get_query_text.get_attribute('value') except Exception: log.logger.exception('get value of element fail', exc_info=True) raise else: log.logger.info('get value [%s] of element [%s] success' % (query_list, text)) return text # 重置功能的重写 def reset(self): """ :return: """ try: self.findElement(*self.query_list[0]).clear() self.findElement(*self.query_list[1]).clear() except Exception: log.logger.exception('reset fail', exc_info=True) raise else: log.logger.info('reset [%s]-[%s]success' % (self.query_list[0], self.query_list[1])) #键盘删除 def keydelete(self): ''' :return: ''' for keydelete1 in range(25): self.findElement(*self.input_list[3]).send_keys(Keys.BACK_SPACE) self.findElement(*self.input_list[4]).send_keys(Keys.BACK_SPACE) self.findElement(*self.input_list[5]).send_keys(Keys.BACK_SPACE)
class ExecutiveCondition_Page(BasePage): ''' 执行情况 ''' # 合同管理 contract = (By.XPATH, eleData.readExcel(17, 3)) # 合同管理列表 contractul = (By.XPATH, eleData.readExcel(452, 3)) #点击 button_list = [ (By.XPATH, eleData.readExcel(654, 3)), #所有地区 (By.XPATH, eleData.readExcel(655, 3)), #查询 (By.XPATH, eleData.readExcel(656, 3)) ] #查看明细 #选择框 checkbox = [ (By.XPATH, eleData.readExcel(657, 3)), #全选0 (By.XPATH, eleData.readExcel(658, 3)), #一项1 (By.XPATH, eleData.readExcel(659, 3)), #履约2 (By.XPATH, eleData.readExcel(660, 3)), #超期3 (By.XPATH, eleData.readExcel(661, 3)), #终止4 (By.XPATH, eleData.readExcel(662, 3)) ] #待收款5 #验证 msg_list = [ (By.XPATH, eleData.readExcel(663, 3)), #查询验证 (By.XPATH, eleData.readExcel(664, 3)), #右上角验证 (By.XPATH, eleData.readExcel(665, 3)) ] #明细窗口 # 断言数据 assertlist = [ '请选择一项查看', '显示第 1 到第 0 条记录,总共 0 条记录', '显示第 1 到第 10 条记录,总共 294 条记录' ] def inexecutiveconditionpage(self): ''' 进入执行情况页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) # 左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_74_a').click() # 点击合同管理 time.sleep(1) contractul = self.findElement(*self.contractul) contractul.find_element_by_id('sidebarTree_82').click() # 点击执行情况 time.sleep(1) log.logger.info('page[%s] :found the menu [%s] and [%s]' % (sys._getframe().f_code.co_name, self.menuList[0], self.contractul))
class GeneralLedger_Page(BasePage): ''' 总账 ''' # 合同管理 contract = (By.XPATH, eleData.readExcel(17, 3)) # 合同管理列表 contractul = (By.XPATH, eleData.readExcel(452, 3)) #合同台账列表 accountsul = (By.XPATH, eleData.readExcel(692, 3)) # 统计 statistics = (By.XPATH, eleData.readExcel(469, 3)) #点击 button_list = [ (By.XPATH, eleData.readExcel(693, 3)), #所有地区0 (By.XPATH, eleData.readExcel(694, 3)), #合同主体1 (By.XPATH, eleData.readExcel(695, 3)), #招标方式2 (By.XPATH, eleData.readExcel(696, 3)), #收款状态3 (By.XPATH, eleData.readExcel(697, 3)) ] #查询4 #合同主体 contractsubject = [ (By.XPATH, eleData.readExcel(698, 3)), #请选择 (By.XPATH, eleData.readExcel(699, 3)), #房屋租赁 (By.XPATH, eleData.readExcel(700, 3)), #场地租赁 (By.XPATH, eleData.readExcel(701, 3)), #土地承包 (By.XPATH, eleData.readExcel(702, 3)), #资产 (By.XPATH, eleData.readExcel(703, 3)) ] #建地 #招标方式 tender = [ (By.XPATH, eleData.readExcel(704, 3)), #请选择 (By.XPATH, eleData.readExcel(705, 3)), #公开协作 (By.XPATH, eleData.readExcel(706, 3)), #公开竞标 (By.XPATH, eleData.readExcel(707, 3)), #其他 (By.XPATH, eleData.readExcel(708, 3)), #招投标 (By.XPATH, eleData.readExcel(709, 3)) ] #拍卖 # 收款状态 paymentstatus = [ (By.XPATH, eleData.readExcel(710, 3)), # 请选择 (By.XPATH, eleData.readExcel(711, 3)), # 正常履约 (By.XPATH, eleData.readExcel(712, 3)), # 已终止 (By.XPATH, eleData.readExcel(713, 3)), # 超期未收 (By.XPATH, eleData.readExcel(714, 3)) ] # 待收款 #时间控件 time_list = [ (By.XPATH, eleData.readExcel(715, 3)), #签订年度 (By.XPATH, eleData.readExcel(716, 3)), #前一年 (By.XPATH, eleData.readExcel(717, 3)), #点击 (By.XPATH, eleData.readExcel(718, 3)), #2018 (By.XPATH, eleData.readExcel(719, 3)) ] #确定 #验证 msgInfo = (By.XPATH, eleData.readExcel(720, 3)) # 断言数据 assertlist = [ '显示第 1 到第 0 条记录,总共 0 条记录', #0查询为空 '显示第 1 到第 10 条记录,总共 223 条记录', #1时间查询 '显示第 1 到第 10 条记录,总共 163 条记录', #2房屋租赁查询 '显示第 1 到第 10 条记录,总共 106 条记录', #3场地租赁查询 '显示第 1 到第 3 条记录', #4土地承包查询 '显示第 1 到第 10 条记录,总共 21 条记录', #5资产查询 '显示第 1 到第 10 条记录,总共 157 条记录', #6公开协作查询 '显示第 1 到第 8 条记录', #7公开竞标查询 '显示第 1 到第 10 条记录,总共 129 条记录', #8其他查询 '显示第 1 到第 10 条记录,总共 294 条记录' #代付款9 ] def ingeneralledgerpage(self): ''' 进入总账页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) # 左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_74_a').click() # 点击合同管理 ele = self.findElement(*self.statistics) # 定位到元素 self.driver.execute_script('arguments[0].scrollIntoView(false)', ele) time.sleep(1) contractul = self.findElement(*self.contractul) contractul.find_element_by_id('sidebarTree_83_a').click() # 点击合同台账 accountsul = self.findElement(*self.contractul) accountsul.find_element_by_id('sidebarTree_84').click() #总账 time.sleep(1) log.logger.info('page[%s] :found the menu [%s] and [%s]' % (sys._getframe().f_code.co_name, self.menuList[0], self.contractul)) # 合同主体,招标方式,收款状态下拉选项 def contractOption(self, *xpathList): """ :param xpath_list: :return: """ try: contract_option = self.findElement(*xpathList) text = contract_option.text except Exception: log.logger.exception('get element contract_option item text fail', exc_info=True) raise else: log.logger.info( 'get element [%s] contract_option item text [%s] fail' % (xpathList, text)) return text, contract_option
class Pay_Page(BasePage): ''' 单笔支付 ''' #银农直联系统 Silverfarmers = (By.XPATH, eleData.readExcel(14, 3)) #银农直联列表 Silverfarmersul = (By.XPATH, '//*[@id="sidebarTree_23_ul"]') #转账功能 pay = (By.XPATH, '//*[@id="sidebarTree_24"]') #转账功能列表 payul = (By.XPATH, '//*[@id="sidebarTree_24_ul"]') #单笔支付 singlePay = (By.XPATH, eleData.readExcel(226, 3)) #按钮 button_list = \ [(By.XPATH, eleData.readExcel(238, 3)),#村居0 (By.XPATH, eleData.readExcel(239, 3)),#选择一项村居1 (By.XPATH, eleData.readExcel(240, 3)),#收款方2 (By.XPATH, eleData.readExcel(241, 3)),#选择一项收款方3 (By.XPATH, eleData.readExcel(242, 3)),#添加新收款方4 (By.XPATH, eleData.readExcel(243, 3)),#开始支付5 (By.XPATH, eleData.readExcel(244, 3)),#关闭支付6 (By.XPATH, eleData.readExcel(245, 3))]#确定支付7 #输入框 input_list = \ [(By.XPATH, eleData.readExcel(246, 3)),#收款方名称0 (By.NAME, eleData.readExcel(247, 3)),#收款方账号1 (By.NAME, eleData.readExcel(248, 3)),#收款方户名2 (By.XPATH, eleData.readExcel(249, 3)),#联行号3 (By.XPATH, eleData.readExcel(250, 3)),#金额4 (By.XPATH, eleData.readExcel(251, 3)),#摘要5 (By.XPATH, eleData.readExcel(252, 3))]#支付密码6 #验证信息 msg_list = \ [(By.XPATH, eleData.readExcel(253, 3)),#村居为空提示0 (By.XPATH, eleData.readExcel(254, 3)),#账号为空提示1 (By.XPATH, eleData.readExcel(255, 3)),#收款账号为空提示2 (By.XPATH, eleData.readExcel(256, 3)),#金额为空错误提示3 (By.XPATH, eleData.readExcel(257, 3)),#摘要为空提示4 (By.XPATH, eleData.readExcel(258, 3)),#收款账号错误提示5 (By.XPATH, eleData.readExcel(259, 3)),#收款账号为空提示6 (By.XPATH, eleData.readExcel(260, 3)),#收款户名为空提示7 (By.XPATH, eleData.readExcel(261, 3)),#联行号为空错误提示8 (By.XPATH, eleData.readExcel(262, 3)),#右上提示9 (By.XPATH, eleData.readExcel(263, 3)),#选择村居验证10 (By.XPATH, eleData.readExcel(264, 3)),#选择村居验证11 (By.XPATH, eleData.readExcel(265, 3)),#选择村居验证12 (By.XPATH, eleData.readExcel(266, 3)),#选择收款方验证13 (By.XPATH, eleData.readExcel(267, 3)),#选择收款方验证14 (By.XPATH, eleData.readExcel(268, 3)),#选择收款方验证15 (By.XPATH, eleData.readExcel(269, 3)),#选择收款方验证16 (By.XPATH, eleData.readExcel(270, 3)),#收款方为空提示17 (By.XPATH, eleData.readExcel(271, 3)),#确定支付窗口18 (By.XPATH, eleData.readExcel(272, 3)),#关闭支付验证19 (By.XPATH, eleData.readExcel(273, 3)),#点击添加新收款方验证20 (By.XPATH, '//*[@id="hasntOtherBank"]/div[4]/div/small[2]')]#新增收款方联行号错误 # 测试数据 valueList = ['967687572875767575', '811247857857', '1', '123456', '测试'] reason = time.strftime('%Y-%m-%d:%H-%M-%S') + '测试' def insinglePay(self): ''' 进入单笔支付页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) # 左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_23_a').click() # 点击银农直联系统 time.sleep(1) Silverfarmersul = self.findElement(*self.Silverfarmersul) Silverfarmersul.find_element_by_xpath( '//*[@id="sidebarTree_24_a"]').click() # 点击支付功能 time.sleep(1) payul = self.findElement(*self.payul) payul.find_element_by_xpath( '//*[@id="sidebarTree_25_a"]').click() #点击单笔支付 time.sleep(1) log.logger.info( 'page[%s] :found the menu [%s] and [%s]' % (sys._getframe().f_code.co_name, self.menuList[0], self.payul)) def cBtn(self, button): ''' 点击按钮 :return: ''' btn = self.findElement(*button) try: btn.click() except Exception: log.logger.exception('can not the button ', exc_info=True) raise else: log.logger.info('page[%s]:clicking the button [%s]' % (sys._getframe().f_code.co_name, button))
class Issuing_Page(BasePage): ''' 母子账号代付 ''' #银农直联系统 Silverfarmers = (By.XPATH, eleData.readExcel(14, 3)) #银农直联列表 Silverfarmersul = (By.XPATH, '//*[@id="sidebarTree_23_ul"]') #代付功能 pay = (By.XPATH, '//*[@id="sidebarTree_32"]') #代付功能列表 payul = (By.XPATH, '//*[@id="sidebarTree_32_ul"]') #母子账号代付 issuing = (By.XPATH, eleData.readExcel(230, 3)) #母子账号代付页面 issuingpage = (By.XPATH, eleData.readExcel(272, 3)) #按钮 button_list = \ [(By.XPATH, eleData.readExcel(722, 3)), #己方银行0 (By.XPATH, '//*[@id="searchForm"]/div[1]/div/div/ul/li[2]'),#1 (By.XPATH, eleData.readExcel(723, 3)), # 查询2 (By.XPATH, eleData.readExcel(724, 3)), # 新增3 (By.XPATH, eleData.readExcel(725, 3)), # 修改4 (By.XPATH, eleData.readExcel(726, 3)), # 删除5 (By.XPATH, eleData.readExcel(727, 3)), # 数据导入6 (By.XPATH, eleData.readExcel(728, 3)), # 批量代付7 (By.XPATH, eleData.readExcel(729, 3)), # 导出模板8 (By.XPATH, eleData.readExcel(730, 3)), # 新增内银行9 (By.XPATH, eleData.readExcel(731, 3)), # 提交10 (By.XPATH, eleData.readExcel(732, 3)), # 取消11 (By.XPATH, eleData.readExcel(733, 3)), # 卡,折12 (By.XPATH, eleData.readExcel(734, 3)), # 修改提交13 (By.XPATH, eleData.readExcel(735, 3)), # 修改取消14 (By.XPATH, eleData.readExcel(736, 3)), # 删除确定按钮15 (By.XPATH, eleData.readExcel(737, 3)), # 删除消按钮16 (By.XPATH, eleData.readExcel(738, 3)), # 数据导入提交17 (By.XPATH, eleData.readExcel(739, 3)), # 数据导入取消18 (By.XPATH, eleData.readExcel(740, 3)), # 关闭支付19 (By.XPATH, eleData.readExcel(741, 3)), # 确定支付20 (By.XPATH, '//*[@id="defaultForm"]/div[1]/div/div/div/ul/li[2]'),#新增银行21 (By.XPATH, '//*[@id="defaultForm"]/div[1]/div/div/div/ul/li[3]'),#修改银行22 (By.ID, 'file_input')]#上传23 #输入框 input_list = \ [(By.XPATH, eleData.readExcel(742, 3)), #收款人0 (By.XPATH, eleData.readExcel(743, 3)), # 收款账号1 (By.XPATH, eleData.readExcel(744, 3)), # 摘要2 (By.XPATH, eleData.readExcel(745, 3)), #收款人3 (By.XPATH, eleData.readExcel(746, 3)), # 收款账号4 (By.XPATH, eleData.readExcel(747, 3)), # 金额5 (By.XPATH, eleData.readExcel(748, 3)), #备注6 (By.XPATH, eleData.readExcel(749, 3)), # 全选7 (By.XPATH, eleData.readExcel(750, 3)), # 第一项8 (By.XPATH, eleData.readExcel(751, 3)), #支付输入9 (By.XPATH, '//*[@id="mychart1"]/tbody/tr[2]/td[1]/input')]#第二项10 #验证信息 msg_list = \ [(By.XPATH, eleData.readExcel(752, 3)), #右上提示0 (By.XPATH, eleData.readExcel(753, 3)), #查询验证1 (By.XPATH, eleData.readExcel(754, 3)), #新增窗口验证2 (By.XPATH, eleData.readExcel(755, 3)), #修改窗口验证3 (By.XPATH, eleData.readExcel(756, 3)), #删除窗口窗口4 (By.XPATH, eleData.readExcel(757, 3)), #数据导入5 (By.XPATH, eleData.readExcel(758, 3)), #批量代付6 (By.XPATH, eleData.readExcel(759, 3)), # 查询失败7 (By.XPATH, eleData.readExcel(760, 3)), # 新增银行不能为空8 (By.XPATH, eleData.readExcel(761, 3)), # 新增收款人不能为空9 (By.XPATH, eleData.readExcel(762, 3)), # 新增金额不能为空10 (By.XPATH, eleData.readExcel(763, 3)), # 新增摘要不能为空11 (By.XPATH, eleData.readExcel(764, 3)), # 修改账号不能为空12 (By.XPATH, eleData.readExcel(765, 3)), # 修改金额不能为空13 (By.XPATH, eleData.readExcel(766, 3)), # 修改账号非数字14 (By.XPATH, eleData.readExcel(767, 3)), # 新增账号非数字15 (By.XPATH, eleData.readExcel(768, 3)), #修改成功提示16 (By.XPATH, eleData.readExcel(769, 3))] #删除成功提示17 #上传 uploaddata = (By.ID, 'file_input') # 测试数据 valueList = [ '测试', '98032230389911653019', '123456', '黄岛一', '6215210200005034', '1', '2', '不能为空', '请输入有效的数字', '新增成功', '请选中一项内容', '请选中一项内容进行修改', '修改成功', '测试', '98032230389911653019', '2020-06-22测试', '折(P)', '导入失败', '导入成功', '密码输入错误', '代付成功' ] reason = time.strftime('%Y-%m-%d') + '测试' def inissuing(self): ''' 进入母子代付页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) # 左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_23_a').click() # 点击银农直联系统 time.sleep(1) Silverfarmersul = self.findElement(*self.Silverfarmersul) Silverfarmersul.find_element_by_xpath( '//*[@id="sidebarTree_32"]').click() # 点击代付功能 time.sleep(1) payul = self.findElement(*self.payul) payul.find_element_by_id('sidebarTree_33').click() # 点击母子代付 time.sleep(1) log.logger.info( 'page[%s] :found the menu [%s] and [%s]' % (sys._getframe().f_code.co_name, self.menuList[0], self.payul)) def cBtn(self, button): ''' 点击按钮 :return: ''' btn = self.findElement(*button) try: btn.click() except Exception: log.logger.exception('can not the button ', exc_info=True) raise else: log.logger.info('page[%s]:clicking the button [%s]' % (sys._getframe().f_code.co_name, button)) def uploadfalse(self): ''' 上传 :return: ''' js = 'document.getElementById("file_input").style.display="block";' self.jScript(js) self.findElement(*self.button_list[23]).send_keys( 'F:\TestDownloads\\log.xml') # 定位上传按钮,添加本地文件 time.sleep(3) def uploadtrue(self): ''' 上传 :return: ''' js = 'document.getElementById("file_input").style.display="block";' self.jScript(js) self.findElement(*self.button_list[23]).send_keys( 'F:\TestDownloads\\银农直联代付模板True.xlsx') # 定位上传按钮,添加本地文件 time.sleep(3)
class UserPage(BasePage): ''' 用户管理 ''' #查询数据 valuesList = [queryData.readExcel(1, 1), int(queryData.readExcel(2, 1)), queryData.readExcel(3, 1)] # 测试新增数据 reason = time.strftime('%Y-%m-%d:%H:%M:%S') + '测试' valueList = ['testname','name', 'test11', '123456', '15864901722','12345678a.'] #基础功能列表 functionList = (By.ID, eleData.readExcel(18, 3)) #机构管理 usergl = (By.ID, eleData.readExcel(20, 3)) #用户管理页面 UserPage = (By.XPATH,eleData.readExcel(47,3)) #查询条件 昵称,手机号,登录账号 query_list = [(By.XPATH, eleData.readExcel(48,3)),(By.XPATH, eleData.readExcel(49,3)), (By.XPATH, eleData.readExcel(50,3))] #全部按钮 button_list = \ [(By.ID, eleData.readExcel(52,3)),#查询按钮0 (By.ID, eleData.readExcel(53,3)),#新增按钮1 (By.ID, eleData.readExcel(54,3)),#修改按钮2 (By.ID, eleData.readExcel(55,3)),#删除按钮3 (By.ID, eleData.readExcel(56,3)),#机构分配按钮4 (By.ID, eleData.readExcel(57,3)),#账套分配按钮5 (By.ID, eleData.readExcel(58,3)),#权限分配按钮6 (By.ID, eleData.readExcel(59,3)),#地区分配按钮7 (By.ID, eleData.readExcel(60,3)),#新增提交按钮8 (By.ID, eleData.readExcel(61,3)),#新增取消按钮9 (By.ID, eleData.readExcel(62,3)),#修改提交按钮10 (By.ID, eleData.readExcel(63,3)),#修改取消按钮11 (By.ID, eleData.readExcel(64,3)),#删除确定按钮12 (By.XPATH, eleData.readExcel(65,3)),#删除取消按钮13 (By.ID, eleData.readExcel(66,3)),#机构,账套,权限,地区提交按钮14 (By.ID, eleData.readExcel(66, 3)),#机构,账套,权限,地区取消按钮15 (By.XPATH, eleData.readExcel(68, 3)),#机构分配所有展开按钮16 (By.LINK_TEXT, eleData.readExcel(69, 3)),#选择机构17 (By.XPATH, eleData.readExcel(72, 3)),#账套全选按钮18 (By.XPATH, eleData.readExcel(75, 3)),#权限全选按钮19 (By.LINK_TEXT, eleData.readExcel(78, 3))]#选择地区20 #角色成功验证 querymsg = \ [(By.XPATH,eleData.readExcel(79,3)),#角色验证 (By.XPATH,eleData.readExcel(80,3))]#昵称,手机号,登录账号验证 #新增用户 addinput = \ [(By.XPATH,eleData.readExcel(81,3)),#用户名0 (By.XPATH,eleData.readExcel(82,3)),#昵称1 (By.XPATH,eleData.readExcel(83,3)),#登录账号2 (By.XPATH,eleData.readExcel(84,3)),#密码3 (By.XPATH,eleData.readExcel(85,3)),#手机号4 (By.XPATH,eleData.readExcel(86,3)),#所属机构5 (By.ID,eleData.readExcel(87,3)),#选择机构6 (By.XPATH,eleData.readExcel(88,3)),#用户名为空提示7 (By.XPATH,eleData.readExcel(89,3)),#昵称为空提示8 (By.XPATH,eleData.readExcel(90,3)),#登录账号为空提示9 (By.XPATH,eleData.readExcel(91,3)),#密码为空提示10 (By.XPATH,eleData.readExcel(92,3)),#手机号为空提示11 (By.XPATH,eleData.readExcel(93,3)),#手机号格式不正确12 (By.XPATH,eleData.readExcel(94,3)),#新增成功提示13 (By.ID, eleData.readExcel(95, 3)),#所属机构提交按钮14 (By.ID, eleData.readExcel(96, 3)),#所属机构取消按钮15 (By.NAME, eleData.readExcel(97,3))]#角色16 #修改用户 updateuser = \ [(By.XPATH, eleData.readExcel(98, 3)),#不选择修改项点击修改提示0 (By.XPATH, eleData.readExcel(99, 3)),#选择多项修改项点击修改提示1 (By.XPATH, eleData.readExcel(100, 3)),#全选框2 (By.XPATH, eleData.readExcel(101, 3)),#选择一项3 (By.XPATH, eleData.readExcel(102, 3)),#登录账号4 (By.XPATH, eleData.readExcel(103, 3)),#登录密码5 (By.XPATH, eleData.readExcel(104, 3)),#登录账号为空提示6 (By.XPATH, eleData.readExcel(105, 3)),#登录密码为空提示7 (By.XPATH, eleData.readExcel(106, 3)),#修改成功提示8 (By.XPATH, eleData.readExcel(107, 3)),#修改登录账号成功验证9 (By.XPATH, eleData.readExcel(108, 3)),#修改性别成功验证10 (By.XPATH, eleData.readExcel(109, 3))]#修改角色成功验证11 #删除用户 deleteuser = \ [(By.XPATH, eleData.readExcel(110, 3)),#点击删除提示0 (By.XPATH, eleData.readExcel(111, 3)),#删除成功提示1 (By.XPATH, eleData.readExcel(112, 3)),#删除项2 (By.XPATH, eleData.readExcel(113, 3))]#删除验证3 #分配 allot = \ [(By.XPATH, eleData.readExcel(114, 3)),#不选择分配项点击。。分配提示0 (By.XPATH, eleData.readExcel(115, 3)),#选择多项分配项点击。。分配提示1 (By.XPATH, eleData.readExcel(116, 3)),#分配成功提示2 (By.XPATH, eleData.readExcel(117, 3)),#机构分配成功验证3 (By.XPATH, eleData.readExcel(118, 3))]#地区分配成功验证4 #用户管理 def inUserPage(self): ''' 进入用户管理页面 :return: ''' leftMenu = self.findElement(*self.menuList[0])#左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_16_a').click()#点击基础功能 time.sleep(1) userList = self.findElement(*self.functionList) userList.find_element_by_xpath('//*[@id="sidebarTree_18_a"]').click()#点击用户管理 time.sleep(1) log.logger.info('page [%s] :found the menu [%s] and [%s]' % ( sys._getframe().f_code.co_name, self.menuList[0], self.functionList)) #输入查询条件 def iQueryCondition(self, NamePhonelogin, value): """ :param NamePhonelogin: :param value: :return: """ name_phone_login = self.findElement(*NamePhonelogin) try: name_phone_login.clear() name_phone_login.send_keys(str(value)) except Exception: log.logger.exception('input value error', exc_info=True) raise else: log.logger.info('[%s] is typing value [%s] ' % (NamePhonelogin, value)) # 获取条件输入框的内容 def getInputboxValue(self, *query_list): ''' :param query_list: :return: ''' try: get_query_text = self.findElement(*query_list) text = get_query_text.get_attribute('value') except Exception: log.logger.exception('get value of element fail', exc_info=True) raise else: log.logger.info('get value [%s] of element [%s] success' % (query_list, text)) return text # 重置功能的重写 def reset(self): """ :return: """ try: self.findElement(*self.query_list[0]).clear() self.findElement(*self.query_list[1]).clear() self.findElement(*self.query_list[2]).clear() except Exception: log.logger.exception('reset fail', exc_info=True) raise else: log.logger.info('reset [%s]-[%s]-[%s] success' % ( self.query_list[0], self.query_list[1], self.query_list[2])) # 点击按钮 def cBtn(self,button): btn = self.findElement(*button) try: btn.click() except Exception: log.logger.exception( 'can not click the button' ,exc_info=True) else: log.logger.info( 'page [%s] :clicking the button [%s]' % (sys._getframe().f_code.co_name ,button)) # 输入一组数据 def inputGroupValue(self, element_list, value_list,value_listupdate): """ :param element_list: 一组元素列表 :param value_list: 一组数据列表 :return: none """ for eleLen in range(len(element_list)): try: self.inputValue(element_list[eleLen], value_list[eleLen]) self.inputValue(element_list[eleLen], value_listupdate[eleLen]) except Exception: log.logger.exception('element [%s] type value [%s] wrong !' %(element_list[eleLen], value_list[eleLen])) raise else: log.logger.info('element [%s] is typing value [%s]' %(element_list[eleLen], value_list[eleLen])) def clearValue(self,clear): ''' 清空输入项 :param clear: :return: ''' input_clear = self.findElement(*clear) try: input_clear.clear() except Exception: log.logger.exception( 'can not clear input', exc_info=True) else: log.logger.info( 'page [%s] :clearing input [%s]' % (sys._getframe().f_code.co_name, clear))
class RolePage(BasePage): ''' 角色管理 ''' # 查询数据 valuesList = [ queryData.readExcel(4, 1), int(queryData.readExcel(5, 1)), queryData.readExcel(6, 1) ] # 测试数据 reason = time.strftime('%Y-%m-%d:%H:%M:%S') + '测试' valueList = ['testname', '1', 'test'] # 基础功能列表 functionList = (By.ID, eleData.readExcel(18, 3)) # 角色管理页面 RolePage = (By.XPATH, eleData.readExcel(119, 3)) # 查询条件 角色,表示位,描述 query_list = [(By.XPATH, eleData.readExcel(120, 3)), (By.XPATH, eleData.readExcel(121, 3)), (By.XPATH, eleData.readExcel(122, 3))] #所有按钮 button_list = \ [(By.ID, eleData.readExcel(123, 3)),#查询按钮0 (By.ID, eleData.readExcel(124, 3)),#新增按钮1 (By.ID, eleData.readExcel(125, 3)),#修改按钮2 (By.ID, eleData.readExcel(126, 3)),#菜单分配按钮3 (By.ID, eleData.readExcel(127, 3)),#按钮分配按钮4 (By.ID, eleData.readExcel(128, 3)),#新增提交按钮5 (By.ID, eleData.readExcel(129, 3)),#新增取消按钮6 (By.ID, eleData.readExcel(130, 3)),#修改,菜单、按钮分配提交按钮7 (By.ID, eleData.readExcel(131, 3)),#修改,菜单、按钮分配取消按钮8 (By.ID, eleData.readExcel(132, 3)),#选择分配菜单9 (By.ID, eleData.readExcel(133, 3)),#按钮新增10 (By.ID, eleData.readExcel(134, 3)),#按钮修改11 (By.ID, eleData.readExcel(135, 3)),#按钮删除12 (By.ID, eleData.readExcel(136, 3)),#按钮分配功能开发展开13 (By.LINK_TEXT, eleData.readExcel(137, 3))]#选择页面14 #查询验证 query_msg = \ [(By.XPATH, eleData.readExcel(138, 3)), (By.XPATH, eleData.readExcel(139, 3)) ] #新增角色 addrole_list = \ [(By.XPATH, eleData.readExcel(140, 3)),#角色名称输入框0 (By.XPATH, eleData.readExcel(141, 3)),#表示位输入框1 (By.XPATH, eleData.readExcel(142, 3)),#描述输入框2 (By.CSS_SELECTOR, eleData.readExcel(143, 3)),#角色名称为空提示3 (By.CSS_SELECTOR, eleData.readExcel(144, 3)),#表示位为空提示4 (By.CSS_SELECTOR, eleData.readExcel(145, 3)),#描述为空提示5 (By.XPATH, eleData.readExcel(146, 3))]#新增成功提示6 #修改角色 updaterole_list = \ [(By.XPATH, eleData.readExcel(147, 3)),#修改项0 (By.XPATH, eleData.readExcel(148, 3)),#全选框1 (By.XPATH, eleData.readExcel(149, 3)),#角色名称输入框2 (By.XPATH, eleData.readExcel(150, 3)),#表示位输入框3 (By.XPATH, eleData.readExcel(151, 3)),#描述输入框4 (By.CSS_SELECTOR, eleData.readExcel(152, 3)),#角色名称为空提示5 (By.CSS_SELECTOR, eleData.readExcel(153, 3)),#表示位为空提示6 (By.CSS_SELECTOR, eleData.readExcel(154, 3)),#描述为空提示7 (By.XPATH, eleData.readExcel(155, 3))]#修改成功提示8 #按钮分配 buttonAssigned_list = \ [(By.XPATH, eleData.readExcel(156, 3)),#按钮分配窗口0 (By.XPATH, eleData.readExcel(157, 3)),#新增按钮名称输入框1 (By.XPATH, eleData.readExcel(158, 3)),#新增英文名称输入框2 (By.XPATH, eleData.readExcel(159, 3)),#新增表示位输入框3 (By.XPATH, eleData.readExcel(160, 3)),#新增按钮图标输入框4 (By.XPATH, eleData.readExcel(161, 3)),#新增描述输入框5 (By.XPATH, eleData.readExcel(162, 3)),#新增提交按钮6 (By.XPATH, eleData.readExcel(163, 3)),#新增取消按钮7 (By.XPATH, eleData.readExcel(164, 3)),#新增按钮窗口8 (By.XPATH, eleData.readExcel(165, 3)),#修改项9 (By.XPATH, eleData.readExcel(166, 3)),#全选框10 (By.XPATH, eleData.readExcel(167, 3)),#修改按钮名称输入框11 (By.XPATH, eleData.readExcel(168, 3)),#修改英文名称输入框12 (By.XPATH, eleData.readExcel(169, 3)),#修改表示位输入框13 (By.XPATH, eleData.readExcel(170, 3)),#修改按钮图标输入框14 (By.XPATH, eleData.readExcel(171, 3)),#修改描述输入框15 (By.XPATH, eleData.readExcel(172, 3)),#修改提交按钮16 (By.XPATH, eleData.readExcel(173, 3)),#修改取消按钮17 (By.XPATH, eleData.readExcel(174, 3)),#修改按钮窗口18 (By.XPATH, eleData.readExcel(175, 3)),#删除框19 (By.XPATH, eleData.readExcel(176, 3)),#删除确定按钮20 (By.XPATH, eleData.readExcel(177, 3)),#删除取消按钮21 (By.XPATH, eleData.readExcel(178, 3)),#删除项22 (By.XPATH, eleData.readExcel(179, 3)),#新增按钮名称为空提示23 (By.XPATH, eleData.readExcel(180, 3)),#新增英文名称为空提示24 (By.XPATH, eleData.readExcel(181, 3)),#新增表示位为空提示25 (By.XPATH, eleData.readExcel(182, 3)),#新增按钮图标为空提示26 (By.XPATH, eleData.readExcel(183, 3)),#新增描述为空提示27 (By.XPATH, eleData.readExcel(184, 3)),#修改按钮名称为空提示28 (By.XPATH, eleData.readExcel(185, 3)),#修改英文名称为空提示29 (By.XPATH, eleData.readExcel(186, 3)),#修改表示位为空提示30 (By.XPATH, eleData.readExcel(187, 3)),#修改按钮图标为空提示31 (By.XPATH, eleData.readExcel(188, 3)),#修改描述为空提示32 (By.XPATH, eleData.readExcel(189, 3))]#关闭按钮分配验证33 def inRolePage(self): ''' 进入角色管理页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) #左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_16_a').click() #点击基础功能 time.sleep(1) userList = self.findElement(*self.functionList) userList.find_element_by_xpath( '//*[@id="sidebarTree_19_a"]').click() #点击角色管理 time.sleep(1) log.logger.info('page [%s] :found the menu [%s] and [%s]' % (sys._getframe().f_code.co_name, self.menuList[0], self.functionList)) #输入查询条件 def iQueryCondition(self, roleshowdescribe, value): ''' :param roleshowdescribe: :param value: :return: ''' role_show_describe = self.findElement(*roleshowdescribe) try: role_show_describe.clear() role_show_describe.send_keys(str(value)) except Exception: log.logger.exception('input value error', exc_info=True) raise else: log.logger.info('[%s] is typing value [%s] ' % (roleshowdescribe, value)) #获取条件输入框内容 def getInputboxValue(self, *query_list): ''' :param query_list: :return: ''' try: get_query_text = self.findElement(*query_list) text = get_query_text.get_attribute('value') except Exception: log.logger.exception('get value of element fail', exc_info=True) raise else: log.logger.info('get value[%s] of element[%s] success' % (query_list, text)) return text #重置功能的重写 def reset(self): ''' :return: ''' try: self.findElement(*self.query_list[0]).clear() self.findElement(*self.query_list[1]).clear() self.findElement(*self.query_list[2]).clear() except Exception: log.logger.exception('reset fail', exc_info=True) raise else: log.logger.info( 'reset [%s]-[%s]-[%s] success' % (self.query_list[0], self.query_list[1], self.query_list[2])) #点击按钮 def cBtn(self, button): btn = self.findElement(*button) try: btn.click() except Exception: log.logger.exception('can not the button', exc_info=True) raise else: log.logger.info('page [%s] :clicking the button [%s]' % (sys._getframe().f_code.co_name, button)) #清空输入项 def clearValue(self, clear): ''' 清空输入项 :param clear: :return: ''' input_clear = self.findElement(*clear) try: input_clear.clear() except Exception: log.logger.exception('can not clear input', exc_info=True) else: log.logger.info('page [%s] :clearing input [%s]' % (sys._getframe().f_code.co_name, clear))
class Transfer_Page(BasePage): ''' 批量转账 ''' # 银农直联系统 Silverfarmers = (By.XPATH, eleData.readExcel(14, 3)) # 银农直联列表 Silverfarmersul = (By.XPATH, '//*[@id="sidebarTree_23_ul"]') # 转账功能 pay = (By.XPATH, '//*[@id="sidebarTree_24"]') # 转账功能列表 payul = (By.XPATH, '//*[@id="sidebarTree_24_ul"]') # 批量转账 transfer = (By.XPATH, eleData.readExcel(227, 3)) #输入框 input_list = \ [(By.XPATH,eleData.readExcel(296,3)),#对方户名新增、修改0 (By.XPATH,eleData.readExcel(297,3)),#对方账号新增、修改1 (By.XPATH,eleData.readExcel(298,3)),#金额新增、修改2 (By.XPATH,eleData.readExcel(299,3)),#备注新增、修改3 (By.XPATH,eleData.readExcel(300,3)),#联行号新增、修改4 (By.XPATH,eleData.readExcel(301,3)),#开户机构新增、修改5 (By.XPATH,eleData.readExcel(302,3))]#交易密码6 #按钮 button_list = \ [(By.ID, eleData.readExcel(303, 3)),#查询按钮0 (By.ID, eleData.readExcel(304, 3)),#新增按钮1 (By.ID, eleData.readExcel(305, 3)),#修改按钮2 (By.ID, eleData.readExcel(306, 3)),#删除按钮3 (By.ID, eleData.readExcel(307, 3)),#数据导入4 (By.ID, eleData.readExcel(308, 3)),#批量转账5 (By.ID, eleData.readExcel(309, 3)),#导出模板6 (By.XPATH, eleData.readExcel(310, 3)),#选择打开银行(新增,修改)7 (By.XPATH, eleData.readExcel(311, 3)),#选择银行(新增8 (By.XPATH, eleData.readExcel(312, 3)),#提交(新增)9 (By.XPATH, eleData.readExcel(313, 3)),#取消(新增)10 (By.XPATH, eleData.readExcel(314, 3)),#选择银行(修改)11 (By.ID, eleData.readExcel(315, 3)),#提交(修改)12 (By.ID, eleData.readExcel(316, 3)),#取消(修改)13 (By.ID, eleData.readExcel(317, 3)),#确定(删除)14 (By.XPATH, eleData.readExcel(318, 3)),#取消(删除)15 (By.ID, eleData.readExcel(319, 3)),#上传16 (By.ID, eleData.readExcel(320, 3)),#导入数据(提交)17 (By.ID, eleData.readExcel(321, 3)),#导入数据(取消)18 (By.XPATH, eleData.readExcel(322, 3)),#确定支付(关闭)19 (By.XPATH, eleData.readExcel(323, 3)),#确定支付(确定)20 (By.XPATH, '//*[@id="searchForm"]/div[1]/div/button'),#己方户名21 (By.XPATH, '//*[@id="searchForm"]/div[1]/div/div/ul/li[4]/a')]#己方户名中一项22 #验证 msg_list = \ [(By.XPATH, eleData.readExcel(324, 3)),#银行存款为空验证0 (By.XPATH, eleData.readExcel(325, 3)),#对方户名为空验证1 (By.XPATH, eleData.readExcel(326, 3)),#对方账号为空验证2 (By.XPATH, eleData.readExcel(327, 3)),#备注为空验证3 (By.XPATH, eleData.readExcel(328, 3)),#联行号为空验证(新增、修改)4 (By.XPATH, eleData.readExcel(329, 3)),#开户机构为空验证(新增、修改)5 (By.XPATH, eleData.readExcel(330, 3)),#金额(修改)为空验证6 (By.XPATH, eleData.readExcel(331, 3)),#右上角提示7 (By.XPATH, eleData.readExcel(332, 3)),#查询验证8 (By.XPATH, eleData.readExcel(333, 3)),#新增窗口9 (By.XPATH, eleData.readExcel(334, 3)),#修改窗口10 (By.XPATH, eleData.readExcel(335, 3)),#删除窗口11 (By.XPATH, eleData.readExcel(336, 3)),#数据导入窗口12 (By.XPATH, eleData.readExcel(337, 3)),#确定支付窗口13 (By.XPATH, '//*[@id="defaultForm"]/div[4]/div/small[1]'),#修改账号为空14 (By.XPATH, '//*[@id="defaultForm"]/div[4]/div/small[2]'),#修改输入错误账号15 (By.XPATH, '/html/body/div[5]'),#删除验证16 (By.XPATH, '//*[@id="confirmPayPw"]/div/div'),#关闭转账验证17 (By.XPATH, '//*[@id="container-fluid"]/div[1]/div/div/div[2]/div[1]/div[2]/div[4]/div[1]/span[1]')]#18 #选框 checkbox_list = \ [(By.XPATH, eleData.readExcel(338, 3)),#全选框0 (By.XPATH, eleData.readExcel(339, 3)),#修改项1 (By.XPATH, eleData.readExcel(340, 3))]#删除项2 # 查询条件 昵称,手机号,登录账号 query_list = [(By.XPATH, eleData.readExcel(293, 3)), (By.XPATH, eleData.readExcel(294, 3)), (By.XPATH, eleData.readExcel(295, 3))] # 查询数据 valuesList = [ queryData.readExcel(7, 1), int(queryData.readExcel(8, 1)), queryData.readExcel(9, 1) ] #测试数据 valueList = [ 'test', '123456789123456', '1', '123594422111', '123456', '不能为空', '请输入有效的数字', '新增成功', '请选中一项内容', '请选中一项内容进行修改', '修改成功', '导入数据', '删除成功', '导入成功', '总共 3 条记录' ] reason = time.strftime('%Y-%m-%d:%H-%M-%S') + '测试' def intransfer(self): ''' 进入批量转账页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) # 左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_23_a').click() # 点击银农直联系统 time.sleep(1) Silverfarmersul = self.findElement(*self.Silverfarmersul) Silverfarmersul.find_element_by_xpath( '//*[@id="sidebarTree_24_a"]').click() # 点击转账功能 time.sleep(1) payul = self.findElement(*self.payul) payul.find_element_by_id('sidebarTree_26').click() # 点击批量转账 time.sleep(1) log.logger.info( 'page[%s] :found the menu [%s] and [%s]' % (sys._getframe().f_code.co_name, self.menuList[0], self.payul)) #输入查询条件 def iQueryCondition(self, NameIdOrgan, value): """ :param NameIdOrgan: :param value: :return: """ name_phone_login = self.findElement(*NameIdOrgan) try: name_phone_login.clear() name_phone_login.send_keys(str(value)) except Exception: log.logger.exception('input value error', exc_info=True) raise else: log.logger.info('[%s] is typing value [%s] ' % (NameIdOrgan, value)) # 获取条件输入框的内容 def getInputboxValue(self, *query_list): ''' :param query_list: :return: ''' try: get_query_text = self.findElement(*query_list) text = get_query_text.get_attribute('value') except Exception: log.logger.exception('get value of element fail', exc_info=True) raise else: log.logger.info('get value [%s] of element [%s] success' % (query_list, text)) return text # 重置功能的重写 def reset(self): """ :return: """ try: self.findElement(*self.query_list[0]).clear() self.findElement(*self.query_list[1]).clear() self.findElement(*self.query_list[2]).clear() except Exception: log.logger.exception('reset fail', exc_info=True) raise else: log.logger.info( 'reset [%s]-[%s]-[%s] success' % (self.query_list[0], self.query_list[1], self.query_list[2])) # 点击按钮 def cBtn(self, button): btn = self.findElement(*button) try: btn.click() except Exception: log.logger.exception('can not click the button', exc_info=True) else: log.logger.info('page [%s] :clicking the button [%s]' % (sys._getframe().f_code.co_name, button)) # 输入一组数据 def inputGroupValue(self, element_list, value_list, value_listupdate): """ :param element_list: 一组元素列表 :param value_list: 一组数据列表 :return: none """ for eleLen in range(len(element_list)): try: self.inputValue(element_list[eleLen], value_list[eleLen]) self.inputValue(element_list[eleLen], value_listupdate[eleLen]) except Exception: log.logger.exception( 'element [%s] type value [%s] wrong !' % (element_list[eleLen], value_list[eleLen])) raise else: log.logger.info('element [%s] is typing value [%s]' % (element_list[eleLen], value_list[eleLen])) def clearValue(self, clear): ''' 清空输入项 :param clear: :return: ''' input_clear = self.findElement(*clear) try: input_clear.clear() except Exception: log.logger.exception('can not clear input', exc_info=True) else: log.logger.info('page [%s] :clearing input [%s]' % (sys._getframe().f_code.co_name, clear)) def uploadfalse(self): ''' 上传 :return: ''' js = 'document.getElementById("file_input").style.display="block";' self.jScript(js) self.findElement(*self.button_list[16]).send_keys( 'F:\TestDownloads\\log.xml') # 定位上传按钮,添加本地文件 time.sleep(3) def uploadture(self): ''' 上传 :return: ''' js = 'document.getElementById("file_input").style.display="block";' self.jScript(js) self.findElement(*self.button_list[16]).send_keys( 'F:\TestDownloads\\银农直联批量转账true.xlsx') # 定位上传按钮,添加本地文件 time.sleep(3)
class OwnBanks_Page(BasePage): ''' 己方银行设置 ''' # 银农直联系统 Silverfarmers = (By.XPATH, eleData.readExcel(14, 3)) # 银农直联列表 Silverfarmersul = (By.XPATH, '//*[@id="sidebarTree_23_ul"]') # 设置与维护 set = (By.XPATH, '//*[@id="sidebarTree_36"]') # 设置与维护列表 setul = (By.XPATH, '//*[@id="sidebarTree_36_ul"]') # 己方银行 ownBanks = (By.XPATH, eleData.readExcel(233, 3)) # 己方银行设置页面 ownBankspage = (By.XPATH, eleData.readExcel(378, 3)) # 查询条件 开户机构,户名,账号,银行名称 query_list = [(By.XPATH, eleData.readExcel(379, 3)), (By.XPATH, eleData.readExcel(380, 3)), (By.XPATH, eleData.readExcel(381, 3))] # 查询数据 valuesList = [ queryData.readExcel(13, 1), queryData.readExcel(14, 1), queryData.readExcel(15, 1), queryData.readExcel(16, 1) ] #输入框 input_list = \ [(By.XPATH, eleData.readExcel(383, 3)),#银行名称(新增,修改)0 (By.XPATH, eleData.readExcel(384, 3)),#户名(新增,修改)1 (By.XPATH, eleData.readExcel(385, 3)),#开户机构(新增,修改)2 (By.XPATH, eleData.readExcel(386, 3)),#账户号码(新增,修改)3 (By.XPATH, eleData.readExcel(387, 3)),#子账户客户号(新增,修改)4 (By.XPATH, eleData.readExcel(388, 3)),#短信接收人(新增)5 (By.XPATH, eleData.readExcel(389, 3)),#短信接收人手机号(新增)6 (By.XPATH, eleData.readExcel(390, 3)),#联行号(新增,修改)7 (By.XPATH, eleData.readExcel(391, 3)),#短信接收人(修改)8 (By.XPATH, eleData.readExcel(392, 3))]#短信接收人手机号(修改)9 #点击元素 button_list = \ [(By.ID, eleData.readExcel(393, 3)),#查询0 (By.ID, eleData.readExcel(394, 3)),#新增1 (By.ID, eleData.readExcel(395, 3)),#修改2 (By.ID, eleData.readExcel(396, 3)),#删除3 (By.ID, eleData.readExcel(397, 3)),#查询余额4 (By.XPATH, eleData.readExcel(398, 3)),#是农商行(新增,修改)5 (By.XPATH, eleData.readExcel(399, 3)),#否农商行(新增,修改)6 (By.ID, eleData.readExcel(400, 3)),#提交(新增)7 (By.ID, eleData.readExcel(401, 3)),#取消(新增)8 (By.ID, eleData.readExcel(402, 3)),#提交(修改)9 (By.ID, eleData.readExcel(403, 3)),#取消(修改)10 (By.XPATH, eleData.readExcel(404, 3)),#确定(删除)11 (By.XPATH, eleData.readExcel(405, 3)),#取消(删除)12 (By.XPATH, eleData.readExcel(406, 3))]#数据后查询余额13 #选框 check_box = \ [(By.XPATH, eleData.readExcel(407, 3)),#修改项0(作废) (By.XPATH, eleData.readExcel(408, 3)),#删除项1 (By.XPATH, eleData.readExcel(409, 3))]#全选2 #检验 msg_list = \ [(By.XPATH, eleData.readExcel(410, 3)),#右上角验证0 (By.XPATH, eleData.readExcel(411, 3)),#新增窗口验证1 (By.XPATH, eleData.readExcel(412, 3)),#银行名称为空提示(新增,修改)2 (By.XPATH, eleData.readExcel(413, 3)),#户名为空提示(新增,修改)3 (By.XPATH, eleData.readExcel(414, 3)),#开户机构为空验证(新增,修改)4 (By.XPATH, eleData.readExcel(415, 3)),#短信接收人为空验证(新增)5 (By.XPATH, eleData.readExcel(416, 3)),#短信接收人手机号为空验证(新增)6 (By.XPATH, eleData.readExcel(417, 3)),#账号为空验证(新增)7 (By.XPATH, eleData.readExcel(418, 3)),#短信接收人为空验证(修改)8 (By.XPATH, eleData.readExcel(419, 3)),#短信接收人手机号为空验证(修改)9 (By.XPATH, eleData.readExcel(420, 3)),#修改窗口验证10 (By.XPATH, eleData.readExcel(421, 3)),#删除窗口验证11 (By.XPATH, eleData.readExcel(422, 3)),#查询验证12 (By.XPATH, '//*[@id="defaultForm"]/div[9]/div/small[2]'),#不规则联行号验证13 (By.XPATH, '/html/body/div[5]'), #删除提示14 (By.XPATH, '/html/body/div[6]'), # 重复验证提示15 (By.XPATH, '//*[@id="container-fluid"]/div[1]/div/div/div[2]/div[1]/div[2]/div[4]/div[1]/span[1]'),#16查询为空 (By.XPATH, '//*[@id="defaultForm"]/div[3]/div/small[2]')]#17账号不规则 # 测试数据 valueList = [ '城南支行', '2100011204205000010340', '淄博市淄川区将军路街道查王村股份经济合作社', '总共 0 条记录', '不能为空', '13964168531', '新增成功', '淄博市淄川区将军路街道贾官村股份经济合作社', '账户已存在', '请选中一项内容', '请选中一项内容进行操作', '修改成功', '请输入有效的数字', '删除成功' ] reason = time.strftime('%Y-%m-%d:%H-%M-%S') + '测试' def InownBankspage(self): ''' 进入己方银行设置页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) # 左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_23_a').click() # 点击银农直联系统 time.sleep(1) Silverfarmersul = self.findElement(*self.Silverfarmersul) Silverfarmersul.find_element_by_xpath( '//*[@id="sidebarTree_36_a"]').click() # 点击设置与维护 time.sleep(1) payul = self.findElement(*self.setul) payul.find_element_by_id('sidebarTree_37').click() # 点击己方银行设置 time.sleep(1) log.logger.info( 'page[%s] :found the menu [%s] and [%s]' % (sys._getframe().f_code.co_name, self.menuList[0], self.setul)) # 输入查询条件 def iQueryCondition(self, Accountnamebank, value): """ :param Accountnamebank: :param value: :return: """ Account_name_bank = self.findElement(*Accountnamebank) try: Account_name_bank.clear() Account_name_bank.send_keys(str(value)) except Exception: log.logger.exception('input value error', exc_info=True) raise else: log.logger.info('[%s] is typing value [%s] ' % (Accountnamebank, value)) # 获取条件输入框的内容 def getInputboxValue(self, *query_list): ''' :param query_list: :return: ''' try: get_query_text = self.findElement(*query_list) text = get_query_text.get_attribute('value') except Exception: log.logger.exception('get value of element fail', exc_info=True) raise else: log.logger.info('get value [%s] of element [%s] success' % (query_list, text)) return text # 重置功能的重写 def reset(self): """ :return: """ try: self.findElement(*self.query_list[0]).clear() self.findElement(*self.query_list[1]).clear() self.findElement(*self.query_list[2]).clear() self.findElement(*self.query_list[3]).clear() except Exception: log.logger.exception('reset fail', exc_info=True) raise else: log.logger.info('reset [%s]-[%s]-[%s]-[%s] success' % (self.query_list[0], self.query_list[1], self.query_list[2], self.query_list[3]))
class IntegratedQuery_Page(BasePage): ''' 转账查询 ''' # 银农直联系统 Silverfarmers = (By.XPATH, eleData.readExcel(14, 3)) # 银农直联列表 Silverfarmersul = (By.XPATH, '//*[@id="sidebarTree_23_ul"]') # 转账功能 pay = (By.XPATH, '//*[@id="sidebarTree_24"]') # 转账功能列表 payul = (By.XPATH, '//*[@id="sidebarTree_24_ul"]') # 转账查询 IntegratedQuery = (By.XPATH, eleData.readExcel(228, 3)) # 转账查询页面 IntegratedQuerypage = (By.XPATH, eleData.readExcel(342, 3)) # 查询条件 对方银行,摘要 query_list = [(By.XPATH, eleData.readExcel(343, 3)), (By.XPATH, eleData.readExcel(344, 3)), (By.XPATH, eleData.readExcel(345, 3))] # 查询数据 valuesList = [ queryData.readExcel(10, 1), queryData.readExcel(11, 1), queryData.readExcel(12, 1) ] #点击元素 button_list = \ [(By.XPATH, eleData.readExcel(346, 3)),#开始时间1 0 (By.XPATH, eleData.readExcel(347, 3)),#开始时间2 1 (By.XPATH, eleData.readExcel(348, 3)),#查询2 (By.XPATH, eleData.readExcel(349, 3)),#批量打印3 (By.XPATH, eleData.readExcel(350, 3)),#切换年4 (By.XPATH, eleData.readExcel(351, 3)),#切换月5 (By.XPATH, eleData.readExcel(352, 3)),#选择日6 (By.XPATH, eleData.readExcel(353, 3)),#确定7 (By.XPATH, eleData.readExcel(354, 3)),#现在8 (By.XPATH, eleData.readExcel(355, 3)),#清空9 (By.XPATH, '//*[@id="searchForm"]/div[1]/div/button'),#己方户名10 (By.XPATH, '//*[@id="searchForm"]/div[1]/div/div/ul/li[4]/a')]#己方户名中一项11 # 选框 checkbox_list = \ [(By.XPATH, eleData.readExcel(356, 3)), # 选择一项0 (By.XPATH, eleData.readExcel(357, 3))] # 全选1 #验证 msg = \ [(By.XPATH, eleData.readExcel(358, 3)),#单一查询验证 (By.XPATH, eleData.readExcel(359, 3)),#时间查询验证 (By.XPATH, eleData.readExcel(360, 3))]#打印验证 #数据后打印按钮 dataprint = (By.XPATH, '//*[@id="mychart4"]/tbody/tr[1]/td[14]/a') # 数据后刷新按钮 datarefresh = (By.XPATH, '//*[@id="mychart4"]/tbody/tr[1]/td[15]/a') check_list = [ '总共 264 条记录', '总共 61 条记录', '总共 56 条记录', '总共 0 条记录', '总共 84 条记录', '总共 920 条记录', '总共 3600 条记录', '总共 222 条记录' ] def inIntegratedQuery(self): ''' 进入转账查询页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) # 左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_23_a').click() # 点击银农直联系统 time.sleep(1) Silverfarmersul = self.findElement(*self.Silverfarmersul) Silverfarmersul.find_element_by_xpath( '//*[@id="sidebarTree_24_a"]').click() # 点击转账功能 time.sleep(1) payul = self.findElement(*self.payul) payul.find_element_by_id('sidebarTree_27').click() # 点击批量转账查询 time.sleep(1) log.logger.info( 'page[%s] :found the menu [%s] and [%s]' % (sys._getframe().f_code.co_name, self.menuList[0], self.payul)) #输入查询条件 def iQueryCondition(self, MeAdverseAbstract, value): """ :param MeAdverseAbstract: :param value: :return: """ me_adverse_abstract = self.findElement(*MeAdverseAbstract) try: me_adverse_abstract.clear() me_adverse_abstract.send_keys(value) except Exception: log.logger.exception('input value error', exc_info=True) raise else: log.logger.info('[%s] is typing value [%s] ' % (MeAdverseAbstract, value)) # 获取条件输入框的内容 def getInputboxValue(self, *query_list): ''' :param query_list: :return: ''' try: get_query_text = self.findElement(*query_list) text = get_query_text.get_attribute('value') except Exception: log.logger.exception('get value of element fail', exc_info=True) raise else: log.logger.info('get value [%s] of element [%s] success' % (query_list, text)) return text # 重置功能的重写 def reset(self): """ :return: """ try: self.findElement(*self.query_list[0]).clear() self.findElement(*self.query_list[1]).clear() self.findElement(*self.query_list[2]).clear() except Exception: log.logger.exception('reset fail', exc_info=True) raise else: log.logger.info( 'reset [%s]-[%s]-[%s] success' % (self.query_list[0], self.query_list[1], self.query_list[2]))
class PayDetailedQuery_Page(BasePage): ''' 代付明细查询 ''' # 银农直联系统 Silverfarmers = (By.XPATH, eleData.readExcel(14, 3)) # 银农直联列表 SilverFarmersul = (By.XPATH, '//*[@id="sidebarTree_23_ul"]') # 代付功能 pay = (By.XPATH, '//*[@id="sidebarTree_32"]') # 代付功能列表 payul = (By.XPATH, '//*[@id="sidebarTree_32_ul"]') # 代付结果查询 paymentquery = (By.XPATH, eleData.readExcel(231, 3)) # 代付结果查询页面 parmentquery_page = (By.XPATH, eleData.readExcel(272, 3)) #点击 button_list = \ [(By.XPATH, eleData.readExcel(787, 3)),#己方银行0 (By.XPATH, eleData.readExcel(788, 3)),#己方银行一项1 (By.XPATH, eleData.readExcel(789, 3))]#查询2 input_list = \ [(By.XPATH, eleData.readExcel(790, 3)), #收款账号0 (By.XPATH, eleData.readExcel(791, 3)), # 收款人1 (By.XPATH, eleData.readExcel(792, 3))] # 摘要2 msg_list = \ [(By.XPATH, eleData.readExcel(793, 3)),#存在查询 (By.XPATH, eleData.readExcel(794, 3))]#不存在查询 #测试数据 valuelist = [ '测试人员', '98032230389911653018', '黄岛一', '6215210200005034', '沂南县蒲汪镇大王庄村股份经济合作社', '交易已受理' ] # 断言数据 assertlist = ['显示第 1 到第 0 条记录,总共 0 条记录', '2020-04-03测试'] def inpaydetailedquery(self): ''' 进入代付结果查询页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) # 左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_23_a').click() # 点击银农直联 time.sleep(1) Silverfarmersul = self.findElement(*self.SilverFarmersul) Silverfarmersul.find_element_by_xpath( '//*[@id="sidebarTree_32"]').click() time.sleep(1) detailedul = self.findElement(*self.payul) detailedul.find_element_by_id('sidebarTree_35').click() # 点击代付明细查询 time.sleep(1) log.logger.info( 'page[%s]:found the menu [%s]and [%s]' % (sys._getframe().f_code.co_name, self.menuList[0], self.payul))
class Analysis_Page(BasePage): ''' 年限分析 ''' # 合同管理 contract = (By.XPATH, eleData.readExcel(17, 3)) # 合同管理列表 contractul = (By.XPATH, eleData.readExcel(452, 3)) #点击 button_list = [ (By.XPATH, eleData.readExcel(641, 3)), #所有地区 (By.XPATH, eleData.readExcel(642, 3)), #查询 (By.XPATH, eleData.readExcel(643, 3)) ] #查看明细 #时间控件 time_list = [ (By.XPATH, eleData.readExcel(644, 3)), #签订年度 (By.XPATH, eleData.readExcel(645, 3)), #前年 (By.XPATH, eleData.readExcel(646, 3)), #点击 (By.XPATH, eleData.readExcel(647, 3)), #2018 (By.XPATH, eleData.readExcel(648, 3)) ] #确定 #选择框 checkbox = [ (By.XPATH, eleData.readExcel(649, 3)), #全选 (By.XPATH, eleData.readExcel(650, 3)) ] #一项 #验证 msg_list = [ (By.XPATH, eleData.readExcel(651, 3)), #查询验证 (By.XPATH, eleData.readExcel(652, 3)), #右上角验证 (By.XPATH, eleData.readExcel(653, 3)) ] #明细窗口 # 断言数据 assertlist = ['显示第 1 到第 10 条记录,总共 184 条记录', '请选择一项查看'] def inanalysispage(self): ''' 进入年限分析页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) # 左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_74_a').click() # 点击合同管理 time.sleep(1) contractul = self.findElement(*self.contractul) contractul.find_element_by_id('sidebarTree_80').click() # 点击年限分析 time.sleep(1) log.logger.info('page[%s] :found the menu [%s] and [%s]' % (sys._getframe().f_code.co_name, self.menuList[0], self.contractul))
class PaymentQuery_page(BasePage): ''' 代付结果查询 ''' #银农直联系统 Silverfarmers = (By.XPATH, eleData.readExcel(14, 3)) #银农直联列表 SilverFarmersul = (By.XPATH, '//*[@id="sidebarTree_23_ul"]') #代付功能 pay = (By.XPATH, '//*[@id="sidebarTree_32"]') #代付功能列表 payul = (By.XPATH, '//*[@id="sidebarTree_32_ul"]') #代付结果查询 paymentquery = (By.XPATH, eleData.readExcel(231, 3)) #代付结果查询页面 parmentquery_page = (By.XPATH, eleData.readExcel(272, 3)) #点击 button_list = \ [(By.XPATH, eleData.readExcel(770,3)),#己方银行0 (By.XPATH, eleData.readExcel(771,3)),#己方银行选项1 (By.XPATH, eleData.readExcel(772,3)),#查询2 (By.XPATH, eleData.readExcel(773, 3)),#详情3 (By.XPATH, eleData.readExcel(774, 3)),#打印4 (By.XPATH, eleData.readExcel(775, 3)),#详情内查询5 (By.XPATH, eleData.readExcel(776, 3)),#详情内打印6 (By.XPATH, eleData.readExcel(777, 3))]#详情内取消7 input_list = \ [(By.XPATH, eleData.readExcel(778, 3)),#摘要0 (By.XPATH, eleData.readExcel(779, 3)),#详情内收款账号1 (By.XPATH, eleData.readExcel(780, 3)),#详情内收款人2 (By.XPATH, eleData.readExcel(781, 3))]#详情内摘要3 msg_list = \ [(By.XPATH, eleData.readExcel(782, 3)),#查询0 (By.XPATH, eleData.readExcel(783, 3)),#详情1 (By.XPATH, eleData.readExcel(784, 3)),#详情内查询2 (By.XPATH, eleData.readExcel(785, 3)),#不存在查询3 (By.XPATH, eleData.readExcel(786, 3))]#详情不存在查询4 #测试数据 valuelist = [ '测试', '98032230389911653019', '黄岛一', '6215210200005034', '沂南县蒲汪镇大王庄村股份经济合作社', '35170550687795445677' ] #断言数据 assertlist = ['显示第 1 到第 0 条记录,总共 0 条记录'] def inparmentquery(self): ''' 进入代付结果查询页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) #左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_23_a').click() #点击银农直联 time.sleep(1) Silverfarmersul = self.findElement(*self.SilverFarmersul) Silverfarmersul.find_element_by_xpath( '//*[@id="sidebarTree_32"]').click() time.sleep(1) paymentul = self.findElement(*self.payul) paymentul.find_element_by_id('sidebarTree_34').click() #点击代付结果查询 time.sleep(1) log.logger.info( 'page[%s]:found the menu [%s]and [%s]' % (sys._getframe().f_code.co_name, self.menuList[0], self.payul))
class Menu_Page(BasePage): ''' 菜单管理 ''' #测试数据 valueList = ['test1','test2','5'] reason =time.strftime('%Y-%m-%d:%H-%M-%S')+'测试' # 基础功能列表 functionList = (By.ID, eleData.readExcel(18, 3)) #菜单管理页面 menupage = (By.XPATH,eleData.readExcel(190, 3)) #按钮 button_list = \ [(By.ID, eleData.readExcel(191, 3)),#新增按钮0 (By.ID, eleData.readExcel(192, 3)),#修改按钮1 (By.ID, eleData.readExcel(193, 3)),#删除按钮2 (By.ID, eleData.readExcel(194, 3)),#功能开发展开3 (By.ID, eleData.readExcel(195, 3)),#银农直联展开4 (By.ID, eleData.readExcel(196, 3)),#合同管理展开5 (By.ID, eleData.readExcel(197, 3)),#新增提交按钮6 (By.ID, eleData.readExcel(198, 3)),#新增取消按钮7 (By.ID, eleData.readExcel(199, 3)),#修改提交按钮8 (By.ID, eleData.readExcel(200, 3)),#修改取消按钮9 (By.ID, eleData.readExcel(201, 3)),#删除提交按钮10 (By.ID, eleData.readExcel(202, 3))]#删除取消按钮11 #新增菜单 addmenu_list = \ [(By.XPATH, eleData.readExcel(203, 3)),#新增菜单窗口0 (By.XPATH, eleData.readExcel(204, 3)),#菜单名称输入框1 (By.XPATH, eleData.readExcel(205, 3)),#图标输入框2 (By.XPATH, eleData.readExcel(206, 3)),#跳转地址输入框3 (By.XPATH, eleData.readExcel(207, 3)),#排序输入框4 (By.XPATH, eleData.readExcel(208, 3)),#菜单名称为空提示5 (By.XPATH, eleData.readExcel(209, 3))]#排序输入错误提示6 #修改菜单 updatemenu_list = \ [(By.XPATH, eleData.readExcel(210, 3)),#修改菜单窗口0 (By.XPATH, eleData.readExcel(211, 3)),#修改菜单名称输入框1 (By.XPATH, eleData.readExcel(212, 3)),#修改图标输入框2 (By.XPATH, eleData.readExcel(213, 3)),#修改跳转地址输入框3 (By.XPATH, eleData.readExcel(214, 3)),#修改排序输入框4 (By.XPATH, eleData.readExcel(215, 3)),#修改菜单名称为空提示5 (By.XPATH, eleData.readExcel(216, 3)),#修改排序输入错误提示6 (By.XPATH, eleData.readExcel(217, 3))]#修改项7 #删除菜单 deletemenu_list = [(By.XPATH, eleData.readExcel(218,3)),#删除项0 (By.XPATH, eleData.readExcel(219,3)),#删除窗口1 (By.XPATH, '//*[@id="tree_5_a"]')]#选中项2 #提示信息 msgbox = (By.XPATH, eleData.readExcel(220,3))#提示信息 #新增项 additem = [(By.XPATH,'//*[@id="tree_2_switch"]'),(By.XPATH,'//*[@id="tree_3_span"]'), (By.XPATH,'//*[@id="tree_3_switch"]'),(By.XPATH,'//*[@id="tree_4_switch"]')] #修改项 updateitem = (By.ID,'tree_3_switch') def inmenuPage(self): ''' 进入菜单管理页面 :return: ''' leftMenu = self.findElement(*self.menuList[0])#左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_16').click()#点击基础功能维护 time.sleep(1) menu_list = self.findElement(*self.functionList) menu_list.find_element_by_id('sidebarTree_20_a').click()#点击菜单管理 time.sleep(1) log.logger.info('page[%s] :found the menu [%s] and [%s]'%( sys._getframe().f_code.co_name,self.menuList[0],self.functionList)) def cBtn(self,button): ''' 点击按钮 :return: ''' btn = self.findElement(*button) try: btn.click() except Exception: log.logger.exception('can not the button ',exc_info=True) raise else: log.logger.info( 'page[%s]:clicking the button [%s]' % (sys._getframe().f_code.co_name,button)) def clearValue(self, clear): ''' 清空输入项 :param clear: :return: ''' input_clear = self.findElement(*clear) try: input_clear.clear() except Exception: log.logger.exception( 'can not clear input', exc_info=True) else: log.logger.info( 'page [%s] :clearing input [%s]' % (sys._getframe().f_code.co_name, clear))
class LoginPage(BasePage): """用户名,密码,登录按钮,保存信息,错误提示""" userNameEle = (By.NAME, eleData.readExcel(1, 3)) passWordEle = (By.NAME, eleData.readExcel(2, 3)) loginBtnEle = (By.XPATH, eleData.readExcel(3, 3)) selectKitEle = (By.XPATH, eleData.readExcel(4, 3)) errorMessage = (By.ID, eleData.readExcel(5, 3)) userEle = (By.XPATH, eleData.readExcel(6, 3)) userEle2 = (By.XPATH, eleData.readExcel(7, 3)) signoutEle = (By.XPATH, eleData.readExcel(8, 3)) quitkEle = (By.XPATH, eleData.readExcel(9, 3)) deterQuitEle = (By.ID, eleData.readExcel(10, 3)) # 用户名和密码 unpwData = \ [[testLoginData.readExcel(1, 0), testLoginData.readExcel(1, 1)],# 正确的用户名和正确的密码 [testLoginData.readExcel(2, 0), testLoginData.readExcel(2, 1)],# 错误的用户名和正确的密码 [testLoginData.readExcel(3, 0), testLoginData.readExcel(3, 1)],# 空的用户名和正确的密码 [testLoginData.readExcel(4, 0), testLoginData.readExcel(4, 1)],# 错误的用户名和错误的密码 [testLoginData.readExcel(5, 0), testLoginData.readExcel(5, 1)],# 正确的用户名和空密码 [testLoginData.readExcel(6, 0), testLoginData.readExcel(6, 1)],# 正确的用户名和错误的密码 [testLoginData.readExcel(7, 0), testLoginData.readExcel(7, 1)]]# 空用户名和空密码 #选择套件 def selectKit(self): ''' :return: ''' #定位下拉框 Select(self.driver.find_element_by_xpath( '//*[@id="accounts_select"]')).select_by_value('00010101') # 登录按钮 def clickLoginBtn(self): """ :return: """ element = self.findElement(*self.loginBtnEle) element.click() log.logger.info('%s ,logining....!' % sys._getframe().f_code.co_name) # 登录失败时提示 def getFailedText(self): """ :return: """ info = self.findElement(*self.errorMessage).text log.logger.info('login failed : %s' % info) return info # 统一登录函数 def loginFunc(self, username='******', password='******'): """ :param username: :param cipher: :return: """ self.inputValue(self.userNameEle, username) self.inputValue(self.passWordEle, password) time.sleep(3) # self.selectKit() self.clickLoginBtn() # 清空输入框数据 def clearValue(self, element): empty = self.findElement(*element) empty.clear() log.logger.info('emptying value.......') # 退出 def quit(self): time.sleep(3) user = self.findElement(*self.userEle) user.click() ul = self.findElement(*self.userEle2) ul.self.findElement(*self.signoutEle).click() tc = self.findElement(*self.quitkEle) tc.self.findElement(*self.deterQuitEle).click() log.logger.info('quit')
class Termwarning_page(BasePage): ''' 合同期限预警取消 ''' # 合同管理 contract = (By.XPATH, eleData.readExcel(17, 3)) # 合同管理列表 contractul = (By.XPATH, eleData.readExcel(452, 3)) #合同期限预警取消列表 accountsul = (By.XPATH, eleData.readExcel(466, 3)) # 统计 statistics = (By.XPATH, eleData.readExcel(469, 3)) # 查询数据 valuesList = [ queryData.readExcel(37, 1), (queryData.readExcel(38, 1)), queryData.readExcel(39, 1) ] # 查询条件 合同号,合同名称,客户名称,合同年限 query_list = [(By.XPATH, eleData.readExcel(668, 3)), (By.XPATH, eleData.readExcel(669, 3)), (By.XPATH, eleData.readExcel(670, 3))] #点击 所有地区 查询 第一条数据查看 button_list = [ (By.XPATH, eleData.readExcel(666, 3)), (By.XPATH, '//*[@id="searchContractWarn"]'), #查询1 (By.XPATH, '//*[@id="cancelContractWarn"]'), # 取消2 (By.XPATH, '//*[@id="mychart1"]/tbody/tr[1]/td[1]/input'), #3 (By.XPATH, '//*[@id="hand_man"]'), #经手人4 (By.XPATH, '//*[@id="searchForm"]/div[6]/select'), #状态5 (By.XPATH, '//*[@id="mychart1"]/tbody/tr[1]/td[11]/a'), #历史6 (By.XPATH, '//*[@id="mychart1"]/tbody/tr[1]/td[12]/a'), #查看7 (By.XPATH, '//*[@id="btnOk"]'), #确定取消预警8 (By.XPATH, '//*[@id="deleteModal"]/div/div/div[3]/button[2]') ] #不取消预警9 #经手人 handledby = [ (By.XPATH, eleData.readExcel(672, 3)), #请选择 (By.XPATH, eleData.readExcel(673, 3)), #管理员 (By.XPATH, eleData.readExcel(674, 3)), #曲盼盼 (By.XPATH, eleData.readExcel(675, 3)), #孙宏 (By.XPATH, eleData.readExcel(676, 3)), #刘佳 (By.XPATH, '//*[@id="hand_man"]/option[6]') ] #状态 states = [ (By.XPATH, '//*[@id="searchForm"]/div[6]/select/option[1]'), #请选择 (By.XPATH, '//*[@id="searchForm"]/div[6]/select/option[2]'), #未取消 (By.XPATH, '//*[@id="searchForm"]/div[6]/select/option[3]') ] #已取消 #时间控件 time_list = [ (By.XPATH, eleData.readExcel(682, 3)), #签订日期始0 (By.XPATH, eleData.readExcel(683, 3)), #签订日期止1 (By.XPATH, eleData.readExcel(684, 3)), #前一年2 (By.XPATH, eleData.readExcel(685, 3)), #选择日3 (By.XPATH, eleData.readExcel(686, 3)), #前一月4 (By.XPATH, eleData.readExcel(687, 3)), #选择日5 (By.XPATH, eleData.readExcel(688, 3)) ] #确定6 #验证 msg_list = [ (By.XPATH, eleData.readExcel(689, 3)), #查询验证0 (By.XPATH, eleData.readExcel(690, 3)), #时间查询验证1 (By.XPATH, eleData.readExcel(691, 3)), #明细窗口2 (By.XPATH, '//*[@id="updataDate"]/div/div'), #历史窗口3 (By.XPATH, '//*[@id="deleteModal"]/div/div') ] #取消窗口4 #断言数据 assertlist = [ '显示第 1 到第 0 条记录,总共 0 条记录', '显示第 1 到第 4 条记录,总共 4 条记录', '显示第 1 到第 5 条记录,总共 5 条记录' ] def intermwarning(self): ''' 进入合同期限预警取消页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) # 左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_74_a').click() # 点击合同管理 time.sleep(1) ele = self.findElement(*self.statistics) # 定位到元素 self.driver.execute_script('arguments[0].scrollIntoView(false)', ele) time.sleep(1) contractul = self.findElement(*self.contractul) contractul.find_element_by_id('sidebarTree_86_a').click() # 点击合同预警取消 time.sleep(2) accountsul = self.findElement(*self.contractul) accountsul.find_element_by_id('sidebarTree_87').click() # 合同期限预警取消 time.sleep(1) log.logger.info('page[%s] :found the menu [%s] and [%s]' % (sys._getframe().f_code.co_name, self.menuList[0], self.contractul)) # 输入查询条件 def iQueryCondition(self, contractinformation, value): """ :param contractinformation: :param value: :return: """ contract_information = self.findElement(*contractinformation) try: contract_information.clear() contract_information.send_keys(str(value)) except Exception: log.logger.exception('input value error', exc_info=True) raise else: log.logger.info('[%s] is typing value [%s] ' % (contractinformation, value)) # 获取条件输入框的内容 def getInputboxValue(self, *query_list): ''' :param query_list: :return: ''' try: get_query_text = self.findElement(*query_list) text = get_query_text.get_attribute('value') except Exception: log.logger.exception('get value of element fail', exc_info=True) raise else: log.logger.info('get value [%s] of element [%s] success' % (query_list, text)) return text # 重置功能的重写 def reset(self): """ :return: """ try: self.findElement(*self.query_list[0]).clear() self.findElement(*self.query_list[1]).clear() self.findElement(*self.query_list[2]).clear() self.findElement(*self.query_list[3]).clear() except Exception: log.logger.exception('reset fail', exc_info=True) raise else: log.logger.info('reset [%s]-[%s]-[%s]-[%s] success' % (self.query_list[0], self.query_list[1], self.query_list[2], self.query_list[3])) # 经手人,状态下拉选项 def contractOption(self, *xpathList): """ :param xpath_list: :return: """ try: contract_option = self.findElement(*xpathList) text = contract_option.text except Exception: log.logger.exception('get element contract_option item text fail', exc_info=True) raise else: log.logger.info( 'get element [%s] contract_option item text [%s] fail' % (xpathList, text)) return text, contract_option
class Recipient_Page(BasePage): ''' 短信接收人设置 ''' # 银农直联系统 Silverfarmers = (By.XPATH, eleData.readExcel(14, 3)) # 银农直联列表 Silverfarmersul = (By.XPATH, '//*[@id="sidebarTree_23_ul"]') # 设置与维护 set = (By.XPATH, '//*[@id="sidebarTree_33"]') # 设置与维护列表 setul = (By.XPATH, '//*[@id="sidebarTree_33_ul"]') # 短信接收人设置 recipient = (By.XPATH, eleData.readExcel(236, 3)) # 短信接收人设置页面 recipientpage = (By.XPATH, eleData.readExcel(378, 3)) # 查询条件 姓名,手机号 query_list = [(By.XPATH, eleData.readExcel(430, 3)), (By.XPATH, eleData.readExcel(431, 3))] # 查询数据 valuesList = [queryData.readExcel(21, 1), queryData.readExcel(22, 1)] #输入框 input_list = \ [(By.XPATH, eleData.readExcel(432, 3)),#姓名(增改)0 (By.XPATH, eleData.readExcel(433, 3)),#手机号(增改)1 (By.XPATH, eleData.readExcel(434, 3))]#备注(增改)2 #点击 button_list = \ [(By.XPATH, eleData.readExcel(435, 3)),#查询0 (By.XPATH, eleData.readExcel(436, 3)),#新增1 (By.XPATH, eleData.readExcel(437, 3)),#修改2 (By.XPATH, eleData.readExcel(438, 3)),#删除3 (By.XPATH, eleData.readExcel(439, 3)),#提交(增改)4 (By.XPATH, eleData.readExcel(440, 3)),#取消(增改)5 (By.XPATH, eleData.readExcel(441, 3)),#确定(删除)6 (By.XPATH, eleData.readExcel(442, 3))]#取消(删除)7 #选择框 checkbox = [ (By.XPATH, eleData.readExcel(443, 3)), #选择一项0 (By.XPATH, eleData.readExcel(444, 3)) ] #全选1 #验证 msg_list = \ [(By.XPATH, eleData.readExcel(445, 3)),#右上角验证0 (By.XPATH, eleData.readExcel(446, 3)),#新增窗口验证1 (By.XPATH, eleData.readExcel(447, 3)),#姓名为空提示(增改)2 (By.XPATH, eleData.readExcel(448, 3)),#手机号为空提示(增改)3 (By.XPATH, eleData.readExcel(449, 3)),#修改窗口验证4 (By.XPATH, eleData.readExcel(450, 3)),#删除窗口验证5 (By.XPATH, eleData.readExcel(451, 3))]#查询验证6 # 测试数据 valueList = ['15864901222', '18560703375', '13764901222'] reason = time.strftime('%Y-%m-%d:%H-%M-%S') + '测试' def inrecipientpage(self): ''' 进入对方银行设置页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) # 左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_23_a').click() # 点击银农直联系统 time.sleep(1) Silverfarmersul = self.findElement(*self.Silverfarmersul) Silverfarmersul.find_element_by_xpath( '//*[@id="sidebarTree_33"]').click() # 点击设置与维护 time.sleep(1) setul = self.findElement(*self.setul) setul.find_element_by_id('sidebarTree_37_a').click() # 点击短信接收人设置 time.sleep(1) log.logger.info( 'page[%s] :found the menu [%s] and [%s]' % (sys._getframe().f_code.co_name, self.menuList[0], self.setul)) # 输入查询条件 def iQueryCondition(self, namephone, value): """ :param namephone: :param value: :return: """ name_phone = self.findElement(*namephone) try: name_phone.clear() name_phone.send_keys(str(value)) except Exception: log.logger.exception('input value error', exc_info=True) raise else: log.logger.info('[%s] is typing value [%s] ' % (namephone, value)) # 获取条件输入框的内容 def getInputboxValue(self, *query_list): ''' :param query_list: :return: ''' try: get_query_text = self.findElement(*query_list) text = get_query_text.get_attribute('value') except Exception: log.logger.exception('get value of element fail', exc_info=True) raise else: log.logger.info('get value [%s] of element [%s] success' % (query_list, text)) return text # 重置功能的重写 def reset(self): """ :return: """ try: self.findElement(*self.query_list[0]).clear() self.findElement(*self.query_list[1]).clear() except Exception: log.logger.exception('reset fail', exc_info=True) raise else: log.logger.info('reset [%s]-[%s] success' % (self.query_list[0], self.query_list[1]))
class Receipt_Page(BasePage): ''' 合同收款 ''' # 合同管理 contract = (By.XPATH, eleData.readExcel(17, 3)) # 合同管理列表 contractul = (By.XPATH, eleData.readExcel(452, 3)) #查询数据 valuesList = [ queryData.readExcel(27, 1), queryData.readExcel(28, 1), queryData.readExcel(29, 1), queryData.readExcel(30, 1) ] # 查询条件 合同号,合同名称,客户名称,经办人 query_list = [(By.XPATH, eleData.readExcel(585, 3)), (By.XPATH, eleData.readExcel(586, 3)), (By.XPATH, eleData.readExcel(587, 3)), (By.XPATH, eleData.readExcel(588, 3))] #时间控件 time_list = [ (By.XPATH, eleData.readExcel(589, 3)), #签订时间始0 (By.XPATH, eleData.readExcel(590, 3)), #前一年1 (By.XPATH, eleData.readExcel(591, 3)), #选择日2 (By.XPATH, eleData.readExcel(592, 3)), #签订时间止3 (By.XPATH, eleData.readExcel(593, 3)), #前一月4 (By.XPATH, eleData.readExcel(594, 3)), #选择日5 (By.XPATH, eleData.readExcel(595, 3)) ] #确定6 #点击 查询 查看明细 button_list = [(By.XPATH, eleData.readExcel(596, 3)), (By.XPATH, eleData.readExcel(597, 3))] #验证 右上角验证 条件查询验证 时间查询验证,明细窗口 msg_list = [(By.XPATH, eleData.readExcel(598, 3)), (By.XPATH, eleData.readExcel(599, 3)), (By.XPATH, eleData.readExcel(600, 3)), (By.XPATH, eleData.readExcel(601, 3))] #选框 全选 选择一项 check_box = [(By.XPATH, eleData.readExcel(602, 3)), (By.XPATH, eleData.readExcel(603, 3))] # 断言数据 assertlist = ['显示第 1 到第 0 条记录,总共 0 条记录', '请选择一项查看'] def inreceiptpage(self): ''' 进入合同收款页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) # 左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_74_a').click() # 点击合同管理 time.sleep(1) contractul = self.findElement(*self.contractul) contractul.find_element_by_id('sidebarTree_77').click() # 点击合同收款 time.sleep(1) log.logger.info('page[%s] :found the menu [%s] and [%s]' % (sys._getframe().f_code.co_name, self.menuList[0], self.contractul)) # 输入查询条件 def iQueryCondition(self, contractinformation, value): """ :param contractinformation: :param value: :return: """ contract_information = self.findElement(*contractinformation) try: contract_information.clear() contract_information.send_keys(str(value)) except Exception: log.logger.exception('input value error', exc_info=True) raise else: log.logger.info('[%s] is typing value [%s] ' % (contractinformation, value)) # 获取条件输入框的内容 def getInputboxValue(self, *query_list): ''' :param query_list: :return: ''' try: get_query_text = self.findElement(*query_list) text = get_query_text.get_attribute('value') except Exception: log.logger.exception('get value of element fail', exc_info=True) raise else: log.logger.info('get value [%s] of element [%s] success' % (query_list, text)) return text # 重置功能的重写 def reset(self): """ :return: """ try: self.findElement(*self.query_list[0]).clear() self.findElement(*self.query_list[1]).clear() self.findElement(*self.query_list[2]).clear() self.findElement(*self.query_list[3]).clear() except Exception: log.logger.exception('reset fail', exc_info=True) raise else: log.logger.info('reset [%s]-[%s]-[%s]-[%s] success' % (self.query_list[0], self.query_list[1], self.query_list[2], self.query_list[3]))
class OtherBank_Page(BasePage): ''' 对方银行设置 ''' # 银农直联系统 Silverfarmers = (By.XPATH, eleData.readExcel(14, 3)) # 银农直联列表 Silverfarmersul = (By.XPATH, '//*[@id="sidebarTree_23_ul"]') # 设置与维护 set = (By.XPATH, '//*[@id="sidebarTree_33"]') # 设置与维护列表 setul = (By.XPATH, '//*[@id="sidebarTree_36_ul"]') # 对方银行 otherBank = (By.XPATH, eleData.readExcel(234, 3)) # 对方银行设置页面 otherBankpage = (By.XPATH, eleData.readExcel(378, 3)) # 查询条件 开户机构,户名,账号,银行名称 query_list = [(By.XPATH, eleData.readExcel(379, 3)), (By.XPATH, eleData.readExcel(380, 3)), (By.XPATH, eleData.readExcel(381, 3)), (By.XPATH, eleData.readExcel(382, 3))] # 查询数据 valuesList = [ queryData.readExcel(17, 1), queryData.readExcel(18, 1), queryData.readExcel(19, 1), queryData.readExcel(20, 1) ] #输入框 input_list = \ [(By.XPATH, '//*[@id="defaultForm"]/div[1]/div/input'),#银行名称(新增,修改)0 (By.XPATH, '//*[@id="defaultForm"]/div[2]/div/input'),#户名(新增,修改)1 (By.XPATH, '//*[@id="defaultForm"]/div[3]/div/input'),#开户机构(新增,修改)2 (By.XPATH, '//*[@id="defaultForm"]/div[4]/div/input'),#账户号码(新增,修改)3 (By.XPATH, '//*[@id="transaction_type_select"]'),#联行号(新增,修改)4 (By.XPATH, eleData.readExcel(423, 3)),#短信接收人(新增)5 (By.XPATH, eleData.readExcel(424, 3)),#短信接收人手机号(新增)6 (By.XPATH, eleData.readExcel(425, 3)),#联行号(新增,修改)7 (By.XPATH, eleData.readExcel(391, 3)),#短信接收人(修改)8 (By.XPATH, eleData.readExcel(392, 3))]#短信接收人手机号(修改)9 #点击元素 button_list = \ [(By.ID, eleData.readExcel(393, 3)),#查询0 (By.ID, eleData.readExcel(394, 3)),#新增1 (By.ID, eleData.readExcel(395, 3)),#修改2 (By.ID, eleData.readExcel(396, 3)),#删除3 (By.ID, eleData.readExcel(397, 3)),#查询余额4 (By.XPATH, eleData.readExcel(398, 3)),#是农商行(修改)5 (By.XPATH, eleData.readExcel(399, 3)),#否农商行(修改)6 (By.ID, eleData.readExcel(400, 3)),#提交(新增)7 (By.ID, eleData.readExcel(401, 3)),#取消(新增)8 (By.ID, eleData.readExcel(402, 3)),#提交(修改)9 (By.ID, eleData.readExcel(403, 3)),#取消(修改)10 (By.XPATH, eleData.readExcel(404, 3)),#确定(删除)11 (By.XPATH, eleData.readExcel(405, 3))]#取消(删除)12 # 是否农商行(新增) whether = [(By.XPATH, eleData.readExcel(428, 3)), (By.XPATH, eleData.readExcel(429, 3))] #选框 check_box = \ [(By.XPATH, eleData.readExcel(407, 3)),#修改项0(作废) (By.XPATH, eleData.readExcel(408, 3)),#删除项1 (By.XPATH, eleData.readExcel(409, 3))]#全选2 #检验 msg_list = \ [(By.XPATH, eleData.readExcel(410, 3)), #右上角验证0 (By.XPATH, eleData.readExcel(411, 3)), #新增窗口验证1 (By.XPATH, eleData.readExcel(412, 3)), #银行名称为空提示(新增,修改)2 (By.XPATH, '//*[@id="defaultForm"]/div[2]/div/small'), #户名为空提示(新增,修改)3 (By.XPATH, '//*[@id="defaultForm"]/div[3]/div/small'), #开户机构为空验证(新增,修改)4 (By.XPATH, '//*[@id="defaultForm"]/div[4]/div/small[1]'), #账号为空验证(新增)5 (By.XPATH, '//*[@id="defaultForm"]/div[4]/div/small[2]'), #账号不规则(新增)6 (By.XPATH, '//*[@id="defaultForm"]/div[5]/div/small'), #联行号不规则验证(新增)7 (By.XPATH, eleData.readExcel(418, 3)), #短信接收人为空验证(修改)8 (By.XPATH, eleData.readExcel(419, 3)), #短信接收人手机号为空验证(修改)9 (By.XPATH, eleData.readExcel(420, 3)), #修改窗口验证10 (By.XPATH, eleData.readExcel(421, 3)), #删除窗口验证11 (By.XPATH, eleData.readExcel(422, 3)), #查询验证12 (By.XPATH, '/html/body/div[5]'), # 删除提示13 (By.XPATH, '/html/body/div[6]'), # 重复验证提示14 (By.XPATH, '//*[@id="mychart4"]/tbody')] #15 # 测试数据 valueList = [ '981637672804', '15864901222', '测试银行', '无相关查询数据', '不能为空', '请输入有效的数字', '新增成功', '测试户名', '该银行账户已存在', '请选中一项内容', '请选中一项内容进行操作', '修改成功', '删除成功' ] reason = time.strftime('%Y-%m-%d:%H-%M-%S') + '测试' def InotherBankpage(self): ''' 进入对方银行设置页面 :return: ''' leftMenu = self.findElement(*self.menuList[0]) # 左侧菜单栏 leftMenu.find_element_by_id('sidebarTree_23_a').click() # 点击银农直联系统 time.sleep(1) Silverfarmersul = self.findElement(*self.Silverfarmersul) Silverfarmersul.find_element_by_xpath( '//*[@id="sidebarTree_36"]').click() # 点击设置与维护 time.sleep(1) payul = self.findElement(*self.setul) payul.find_element_by_id('sidebarTree_38').click() # 点击对方银行设置 time.sleep(1) log.logger.info( 'page[%s] :found the menu [%s] and [%s]' % (sys._getframe().f_code.co_name, self.menuList[0], self.setul)) # 输入查询条件 def iQueryCondition(self, Accountnamebank, value): """ :param Accountnamebank: :param value: :return: """ Account_name_bank = self.findElement(*Accountnamebank) try: Account_name_bank.clear() Account_name_bank.send_keys(str(value)) except Exception: log.logger.exception('input value error', exc_info=True) raise else: log.logger.info('[%s] is typing value [%s] ' % (Accountnamebank, value)) # 获取条件输入框的内容 def getInputboxValue(self, *query_list): ''' :param query_list: :return: ''' try: get_query_text = self.findElement(*query_list) text = get_query_text.get_attribute('value') except Exception: log.logger.exception('get value of element fail', exc_info=True) raise else: log.logger.info('get value [%s] of element [%s] success' % (query_list, text)) return text # 重置功能的重写 def reset(self): """ :return: """ try: self.findElement(*self.query_list[0]).clear() self.findElement(*self.query_list[1]).clear() self.findElement(*self.query_list[2]).clear() self.findElement(*self.query_list[3]).clear() except Exception: log.logger.exception('reset fail', exc_info=True) raise else: log.logger.info('reset [%s]-[%s]-[%s]-[%s] success' % (self.query_list[0], self.query_list[1], self.query_list[2], self.query_list[3]))