def __init__(self, env_file, data_file): """ 构造函数 :param env_file: 环境配置文件 :param data_file: 数据配置文件 """ self.using_time = None # 执行时长 self.apply_code = None self.next_user_id = None # 版本信息 custom.print_version_info() self.log = custom.mylog() if env_file is not None: self.env_file = env_file else: return if data_file is not None: self.data_file = data_file else: return self.page = login.Login() # 环境初始化,解析环境 self.__init_env() # 数据初始化 self.__init_data() # 默认产品 self.product_info = dict( name=self.data['applyVo']['productName'], amount=self.data['applyVo']['applyAmount'], period=self.data['applyVo']['applyPeriod'], ) self.person_info = dict( name=self.data['custInfoVo'][0]['custName'], idNum=self.data['custInfoVo'][0]['idNum'], phone=self.data['custInfoVo'][0]['phone'], address=self.data['custInfoVo'][0]['address'] ) self.rec_bank_info = dict( recBankNum=self.data['houseCommonLoanInfoList'][0]['recBankNum'], recPhone=self.data['houseCommonLoanInfoList'][0]['recPhone'], recBankProvince=self.data['houseCommonLoanInfoList'][0]['recBankProvince'], recBankDistrict=self.data['houseCommonLoanInfoList'][0]['recBankDistrict'], recBank=self.data['houseCommonLoanInfoList'][0]['recBank'], recBankBranch=self.data['houseCommonLoanInfoList'][0]['recBankBranch'], ) # 信息输出 custom.print_env_info(self.env, self.company) custom.print_person_info(self.person_info) self.__init__object() self.__user_define()
def get_next_user(page, applycode, stage=0): """ 获取下一个处理人 :param page: 页面对象 :param applycode: 申请件code :param stage: 0 审批流程,1 财务流程,2 :return: """ next_id = process_monitor(page, applycode, stage) if next_id is None: raise ValueError("没有找到下一步处理人") else: next_user_id = next_id mylog().info("下一步处理人:" + next_id) # 当前用户退出系统 page.driver.quit() return next_user_id
def __init__(self): self.log = custom.mylog()
def __init__(self): self.log = custom.mylog() self.HAE = Hae.HouseLoanApplyEntry()
def __init__(self): self.log = custom.mylog() self.db = database.DB()
def process_monitor(page, condition, stage=0): """ 流程监控 :param page: 页面 :param condition: applyCode :param stage 0,1,2 对应风控、财务、募资 :return: 下一个处理人登录 ID """ try: time.sleep(1) page.driver.switch_to_default_content() # 打开任务中心 page.click_control(page.driver, "id", "1DBCBC52791800014989140019301189") time.sleep(1) # 流程监控 page.driver.find_element_by_name( "/house/commonIndex/processMonitor").click() time.sleep(2) # 切换frame try: page.driver.switch_to.frame( "bTabs_tab_house_commonIndex_processMonitor") time.sleep(1) except ec.NoSuchFrameException as msg: raise msg # 输入搜索条件 page.driver.find_element_by_name("process_search").click() time.sleep(1) page.driver.find_element_by_xpath("//*[@id='applyCode']").click() page.driver.find_element_by_xpath("//*[@id='applyCode']").send_keys( condition) time.sleep(1) # 点击查询 page.driver.find_element_by_xpath( "/html/body/div[1]/div[1]/div[2]/a[1]/span").click() time.sleep(1) # 校验查询结果 res = page.driver.find_element_by_xpath( "//*[@id='datagrid-row-r4-2-0']/td[5]/div") time.sleep(2) if not res.text: return None else: res.click() # page.driver.find_element_by_class_name("datagrid-btable").click() page.driver.find_element_by_name('process_search').click() # 双击该笔案件 ActionChains(page.driver).double_click(res).perform() time.sleep(1) role = "" next_user_id = "" if stage == 0: res = page.driver.find_element_by_class_name("datagrid-btable") rcount = res.find_elements_by_tag_name("tr") # 取表格的行数 for i in range(1, len(rcount)): role = page.driver.find_element_by_xpath( '//*[@id="datagrid-row-r1-2-%s"]/td[1]/div' % i).text time.sleep(1) mylog().info("下一个处理节点:" + role) # 返回节点所有值 # 下一步处理人ID next_user_id = page.driver.find_element_by_xpath( '//*[@id="datagrid-row-r1-2-%s"]/td[4]/div' % (len(rcount) - 1)).text elif stage == 1: page.driver.find_element_by_id('firstLoanA').click() # page.driver.find_element_by_xpath('//*[@id="profile"]/div/div/div/div/div[2]').click() page.driver.find_element_by_class_name('datagrid-view2') res = page.driver.find_element_by_xpath( '//*[@id="profile"]/div/div/div/div/div[2]/div[2]/table/tbody' ) rcount = res.find_elements_by_tag_name("tr") for i in range(1, len(rcount)): role = page.driver.find_element_by_xpath( '//*[@id="datagrid-row-r4-2-%s"]/td[1]/div' % i).text time.sleep(1) mylog().info("下一个处理环节:" + role) # 返回节点所有值 next_user_id = page.driver.find_element_by_xpath( '//*[@id="datagrid-row-r4-2-%s"]/td[4]/div' % (len(rcount) - 1)).text elif stage == 2: # 第二次放款 page.driver.find_element_by_id('secondLoanLi').click() page.driver.find_element_by_class_name("datagrid-btable") res = page.driver.find_element_by_xpath( '//*[@id="settings"]/div/div/div/div/div[2]/div[2]/table') rcount = res.find_elements_by_tag_name("tr") # 取表格的行数 for i in range(1, len(rcount)): role = page.driver.find_element_by_xpath( '//*[@id="datagrid-row-r8-2-%s"]/td[1]/div' % i).text time.sleep(1) mylog().info("下一个处理节点:" + role) # 返回节点所有值 # 下一步处理人ID next_user_id = page.driver.find_element_by_xpath( '//*[@id="datagrid-row-r8-2-%s"]/td[4]/div' % (len(rcount) - 1)).text except ec.NoSuchElementException as msg: raise msg finally: page.driver.quit() return next_user_id
def input_bbi_property_info(page): """ 输入物业基本信息 :param page: 页面对象 :return: """ # 这步骤很关键,没有选中,则定位不到下面的元素 try: t1 = page.driver.find_element_by_class_name("house-head-line") t1.click() page.driver.execute_script("window.scrollTo(1600, 0)") # 页面滑动到顶部 page.driver.find_element_by_link_text(u"业务基本信息").click() except ec.ElementNotVisibleException as e: mylog().error(e.msg) raise e try: page.driver.find_element_by_name("propertyOwner").clear() page.driver.find_element_by_name("propertyOwner").send_keys( get_name()) # 产权人 page.driver.find_element_by_name("propertyNo").clear() page.driver.find_element_by_name("propertyNo").send_keys( "gqt0132546") # 房产证号 time.sleep(3) page.driver.find_element_by_name("propertyStatus").click() # 是否涉贷物业 page.driver.find_element_by_name("propertyAge").click() page.driver.find_element_by_name("propertyAge").clear() page.driver.find_element_by_name("propertyAge").send_keys("10") # 房龄 page.driver.find_element_by_name("propertyArea").clear() page.driver.find_element_by_name("propertyArea").send_keys( "100") # 建筑面积 page.driver.find_element_by_name("registrationPrice").clear() page.driver.find_element_by_name("registrationPrice").send_keys( "200") # 等级价 try: # 地址 Select(page.driver.find_element_by_name( "propertyAddressProvince")).select_by_visible_text(u"河北省") Select(page.driver.find_element_by_name( "propertyAddressCity")).select_by_visible_text(u"秦皇岛市") Select(page.driver.find_element_by_name( "propertyAddressDistinct")).select_by_visible_text(u"山海关区") page.driver.find_element_by_id("propertyAddressDetail").clear() page.driver.find_element_by_id("propertyAddressDetail").send_keys( u"不知道在哪个地方") except ec.ElementNotVisibleException as e: raise e.msg page.driver.find_element_by_name("evaluationSumAmount").clear() page.driver.find_element_by_name("evaluationSumAmount").send_keys( "200") # 评估公允价总值 page.driver.find_element_by_name("evaluationNetAmount").clear() page.driver.find_element_by_name("evaluationNetAmount").send_keys( "201") # 评估公允价净值 page.driver.find_element_by_name("slSumAmount").clear() page.driver.find_element_by_name("slSumAmount").send_keys( "202") # 世联评估总值 page.driver.find_element_by_name("slPrice").clear() page.driver.find_element_by_name("slPrice").send_keys("203") # 世联评估净值 page.driver.find_element_by_name("agentSumAmout").clear() page.driver.find_element_by_name("agentSumAmout").send_keys( "204") # 中介评估总值 page.driver.find_element_by_name("agentNetAmount").clear() page.driver.find_element_by_name("agentNetAmount").send_keys( "205") # 中介评估净值 page.driver.find_element_by_name("netSumAmount").clear() page.driver.find_element_by_name("netSumAmount").send_keys( "206") # 网评总值 page.driver.find_element_by_name("netAmount").clear() page.driver.find_element_by_name("netAmount").send_keys("207") # 网评净值 page.driver.find_element_by_name("localSumAmount").clear() page.driver.find_element_by_name("localSumAmount").send_keys( "208") # 当地评估总值 page.driver.find_element_by_name("localNetValue").clear() page.driver.find_element_by_name("localNetValue").send_keys( "209") # 当地评估净值 page.driver.find_element_by_name("remark").clear() page.driver.find_element_by_name("remark").send_keys( u"周边环境良好") # 物业配套描述 page.driver.find_element_by_name("localAssessmentOrigin").clear() page.driver.find_element_by_name("localAssessmentOrigin").send_keys( u"房产局") # 当地评估来源 page.driver.find_element_by_name("assessmentOrigin").clear() page.driver.find_element_by_name("assessmentOrigin").send_keys( u"房产局") # 评估来源 page.driver.find_element_by_name("evaluationCaseDescrip").click() page.driver.find_element_by_name("localAssessmentOrigin").clear() page.driver.find_element_by_name("localAssessmentOrigin").send_keys( u"世联行") page.driver.find_element_by_name("evaluationCaseDescrip").clear() page.driver.find_element_by_name("evaluationCaseDescrip").send_keys( u"符合事实") # 评估情况描述 # 征信信息 page.driver.find_element_by_link_text(u"征信信息").click() page.driver.find_element_by_name("loanIdNum").clear() page.driver.find_element_by_name("loanIdNum").send_keys(get_name()) page.driver.find_element_by_name("creditOverdueNum").clear() page.driver.find_element_by_name("creditOverdueNum").send_keys("0") page.driver.find_element_by_name("queryLoanNum").clear() page.driver.find_element_by_name("queryLoanNum").send_keys("0") page.driver.find_element_by_name("loanOtherAmt").clear() page.driver.find_element_by_name("loanOtherAmt").send_keys("0") page.driver.find_element_by_link_text(u"网查信息").click() page.driver.find_element_by_class_name("remark").click() p1 = page.driver.find_element_by_xpath( "//*[@id='apply_module_check_data_form']/div/div/textarea") p1.click() p1.send_keys(u"哈哈哈哈哈,无异常") page.driver.find_element_by_link_text(u"借款用途及回款来源").click() page.driver.find_element_by_id( "apply_module_payment_source").send_keys(u"薪资回款") p2 = page.driver.find_element_by_xpath( "//*[@id=\"apply_module_remark\"]") p2.click() p2.send_keys(u"无异常") page.driver.find_element_by_link_text(u"风控措施").click() page.driver.find_element_by_name("riskRemark").click() page.driver.find_element_by_name("riskRemark").send_keys(u"无异常") # 保存 save(page) except ec.NoSuchElementException as e: raise e.msg