def toRepay(driver_forward): sleep(2) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_loanApply_css.value).click() waitUntilClick(driver_forward, path_Tripartite_interaction.btn_repayment_css.value) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_repayment_css.value).click() # 还款申请页面 logger.info('还款申请页面') waitUntilClick(driver_forward, path_Tripartite_interaction.btn_submitRepay_cs.value) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.input_repayBankName_css.value).send_keys( "工商银行") driver_forward.find_element_by_css_selector(path_Tripartite_interaction.input_repayBankNum_css.value).send_keys( "123456789012") picture_dir1 = os.getcwd() + '\\test_data\\picture\\id_1.jpg' driver_forward.find_element_by_css_selector(path_Tripartite_interaction.upload_repayPic_css.value).send_keys( picture_dir1) sleep(1) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.checkBox_repayAgree_css.value).click() driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_submitRepay_cs.value).click() logger.info('还款申请提交完成页面') waitUntilDisplay(driver_forward, path_Tripartite_interaction.txt_RepayOk_cs.value) sleep(1) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_myMain_css.value).click() sleep(1) driver_forward.quit()
def CreditAudit_Bank(driver_bank): logger.info('银行授信审核首页') waitUntilClick(driver_bank, path_Tripartite_interaction.btn_creditCheck_css.value) sleep(2) driver_bank.find_element_by_css_selector(path_Tripartite_interaction.btn_creditCheck_css.value).click() logger.info('银行待审批授信页面') waitUntilClick(driver_bank, path_Tripartite_interaction.btn_Check_css.value) driver_bank.find_element_by_css_selector(path_Tripartite_interaction.btn_Check_css.value).click() logger.info('审批授信评分卡页面') waitUntilClick(driver_bank, path_Tripartite_interaction.btn_toCheck_css.value) sleep(1) driver_bank.find_element_by_css_selector(path_Tripartite_interaction.btn_toCheck_css.value).click() waitUntilClick(driver_bank, path_Tripartite_interaction.input_checkOK_css.value) sleep(1) logger.info('审批授信审核页面') el1 = driver_bank.find_element_by_css_selector(path_Tripartite_interaction.input_checkMoney_css.value) el1.send_keys(Keys.CONTROL + 'a') el1.send_keys(Keys.DELETE) el1.send_keys('100000') driver_bank.find_element_by_css_selector(path_Tripartite_interaction.input_checkMonth_css.value).send_keys("12") el3 = driver_bank.find_element_by_css_selector(path_Tripartite_interaction.input_checkRate_css.value) el3.send_keys(Keys.CONTROL + 'a') el3.send_keys(Keys.DELETE) el3.send_keys('10') driver_bank.find_element_by_css_selector(path_Tripartite_interaction.input_remarks_css.value).send_keys('银行授信审批通过') driver_bank.find_element_by_css_selector(path_Tripartite_interaction.input_checkOK_css.value).click()
def backStageLogin(driver, act, pwd, flag): driver.find_element_by_css_selector( path_backstage_examine.input_actLogin_css.value).send_keys(act) driver.find_element_by_css_selector( path_backstage_examine.input_actPwd_css.value).send_keys(pwd) driver.find_element_by_css_selector( path_backstage_examine.btn_login_css.value).click() if flag != 1: waitUntilDisplay(driver, path_backstage_examine.txt_backstage_css.value) else: waitUntilDisplay(driver, path_backStage_authentication.btn_codeAu_css.value) logger.info('成功登录后台系统')
def productChoose(driver_forward): driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_loanApply_css.value).click() logger.info('进入借款检索一览画面') while True: try: waitUntilClick(driver_forward, path_Tripartite_interaction.select_productName_css.value) sleep(2) el = driver_forward.find_element_by_css_selector(path_Tripartite_interaction.select_productName_css.value) el.click() break except: continue sleep(1) el2 = driver_forward.find_element_by_css_selector(path_Tripartite_interaction.select_productNameList_css.value) scrollText(driver_forward, el2, product_name) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.select_productQuery_css.value).click()
def companyPassForget(driver, Act, Type): waitUntilClick(driver, path_backStage_authentication.btn_forPass_css.value) sleep(1) driver.find_element_by_css_selector( path_backStage_authentication.btn_forPass_css.value).click() waitUntilClick(driver, loginOn.btn_next_css.value) sleep(0.5) driver.find_element_by_css_selector( loginOn.input_actForget_css.value).send_keys(Act) driver.find_element_by_css_selector( loginOn.input_codeForget_css.value).send_keys(' ') waitUntilClick(driver, loginOn.btn_phoneCodeForget_css.value) sleep(0.5) flushDb() driver.find_element_by_css_selector( loginOn.btn_phoneCodeForget_css.value).click() while 1: if Type == 1: message = getPhoneMessage().get("actBank") else: message = getPhoneMessage().get("actRisk") if message is None: sleep(1) continue else: break message = message.strip().strip('"') el = driver.find_element_by_css_selector( loginOn.input_phoneCodeForget_css.value) el.send_keys(Keys.LEFT) el.send_keys(message) el.send_keys(Keys.DELETE) # 密码重置页面 waitUntilClick(driver, loginOn.btn_next_css.value) sleep(0.5) driver.find_element_by_css_selector(loginOn.btn_next_css.value).click() waitUntilDisplay(driver, loginOn.btn_nextPwd_css.value) logger.info("成功进入到密码重置页面") sleep(0.5) driver.find_element_by_css_selector( loginOn.input_pwdForget_css.value).send_keys('123456') driver.find_element_by_css_selector( loginOn.input_pwdConfirm_css.value).send_keys('123456') driver.find_element_by_css_selector(loginOn.btn_nextPwd_css.value).click() # 修改完成画面 sleep(2) logger.info("成功进入到密码修改完成页面")
def companyLoginOn(): def_name = sys._getframe().f_code.co_name test_Assert = Assert.Assertions(def_name) logger.info("开始执行脚本%s:\n", def_name) driver = webdriver.Chrome() driver.maximize_window() driver.get(url_forward) # 登陆页面 login(driver) # 首页 waitUntilDisplay(driver, loginOn.link_home_css.value) homeText = driver.find_element_by_css_selector(loginOn.link_home_css.value) test_Assert.assert_text_ui(homeText.text, '首页') logger.info("中小微企业金融服务聚合平台登录成功!") driver.quit()
def createAct(driver, account, name, enterpriseType): xpath = "//*[@id='root']/div/section/section/main/div/div/div/div[2]/table/tbody//*[text() = \'" + name + "\']/..//*[text()= '创建账号']" driver.find_element_by_xpath(xpath).click() sleep(1) if enterpriseType == 1: logger.info("进入银行账户创建页面") else: logger.info("进入担保公司创建页面") driver.find_element_by_css_selector( path_backStage_authentication.input_ActName_css.value).send_keys(name) driver.find_element_by_css_selector( path_backStage_authentication.input_PhoneNum_css.value).send_keys( account) driver.find_element_by_css_selector( path_backStage_authentication.input_Id_Card_css.value).send_keys( "110101199003078371") driver.find_element_by_css_selector( path_backStage_authentication.btn_ActConfirm_css.value).click() sleep(2)
def goToPay(driver_forward): sleep(3) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_loanApply_css.value).click() waitUntilClick(driver_forward, path_Tripartite_interaction.select_productQuery_css.value) sleep(1) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.select_productQuery_css.value).click() waitUntilClick(driver_forward, path_Tripartite_interaction.btn_goToPay_css.value) sleep(0.5) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_goToPay_css.value).click() sleep(1) logger.info('担保费缴费画面') waitUntilClick(driver_forward, path_Tripartite_interaction.btn_applyPay_css.value) picture_dir1 = os.getcwd() + '\\test_data\\picture\\id_6.png' driver_forward.find_element_by_css_selector(path_Tripartite_interaction.upload_payPicture_css.value).send_keys( picture_dir1) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_applyPay_css.value).click() logger.info('担保费缴费完了画面') waitUntilDisplay(driver_forward, path_Tripartite_interaction.txt_applyPay_css.value) sleep(1) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_myMain_css.value).click()
def test_backStageActCreate(): def_name = sys._getframe().f_code.co_name logger.info("开始执行脚本%s:\n", def_name) if jenkins: option = webdriver.ChromeOptions() option.add_argument('headless') # 浏览器不提供可视化页面 option.add_argument('no-sandbox') # 以最高权限运行 option.add_argument('--start-maximized') # 最大化运行(全屏窗口)设置元素定位比较准确 option.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug option.add_argument('--window-size=1920,1080') # 设置浏览器分辨率(窗口大小) driver = webdriver.Chrome(options=option) else: driver = webdriver.Chrome(executable_path=driverPath) driver.maximize_window() driver.get(url_back) # 登陆页面 backStageLogin(driver, act, pwd, 0) if delete_flag == 0: deleteOrgInfor() logger.info('机构信息DB删除') sleep(2) driver.find_element_by_xpath( path_backStage_authentication.btn_jurisdiction_xpath.value).click() sleep(1) el = driver.find_element_by_xpath( path_backStage_authentication.btn_mechanism_xpath.value) actionChainsClick(driver, el) waitUntilClick(driver, path_backStage_authentication.btn_addMechanism_css.value) # 创建担保公司机构 createInstitutions(driver, autoTest_RiskName, 0) # 创建银行机构 createInstitutions(driver, autoTest_BankName, 1) # 创建担保公司账号 createAct(driver, company_Guarantee, autoTest_RiskName, 0) # 创建银行账号 createAct(driver, company_bank, autoTest_BankName, 1) driver.quit()
def loanCheck_Risk(driver_risk): logger.info('担保公司借款审核首页') driver_risk.find_element_by_css_selector(path_Tripartite_interaction.btn_homeBackStage_css.value).click() waitUntilClick(driver_risk, path_Tripartite_interaction.btn_LoanCheck_css.value) sleep(2) driver_risk.find_element_by_css_selector(path_Tripartite_interaction.btn_LoanCheck_css.value).click() logger.info('担保公司借款审核列表首页') waitUntilClick(driver_risk, path_Tripartite_interaction.btn_CheckBank_css.value) driver_risk.find_element_by_css_selector(path_Tripartite_interaction.btn_CheckBank_css.value).click() logger.info('担保公司审核页面') waitUntilClick(driver_risk, path_Tripartite_interaction.btn_checkOkBank_css.value) sleep(1) el1 = driver_risk.find_element_by_css_selector(path_Tripartite_interaction.btn_checkOkRiskMoney_css.value) el1.send_keys(Keys.CONTROL + 'a') el1.send_keys(Keys.DELETE) el1.send_keys('1000') sleep(1) driver_risk.find_element_by_css_selector(path_Tripartite_interaction.btn_CheckOkReasonRisk_css.value).send_keys( "担保公司借款审核通过") sleep(0.5) driver_risk.find_element_by_css_selector(path_Tripartite_interaction.btn_checkOkBank_css.value).click() is_not_visible(driver_risk, path_Tripartite_interaction.btn_CheckOkReasonRisk_css.value) sleep(2)
def test_backStage_authentication(): def_name = sys._getframe().f_code.co_name logger.info("开始执行脚本%s:\n", def_name) def_name = sys._getframe().f_code.co_name logger.info("开始执行脚本%s:\n", def_name) driver = webdriver.Chrome(executable_path=driverPath) driver.maximize_window() driver.get(url_back) # 银行密码修改 companyPassForget(driver, company_bank, 1) # 担保公司密码修改 companyPassForget(driver, company_Guarantee, 0) # 银行认证 authentication(driver, 0) driver_bank = webdriver.Chrome() driver_bank.maximize_window() driver_bank.get(url_back) authentication(driver_bank, 1) # 创建产品 createProduct(driver_bank) driver_bank.quit()
def CreditAudit_Risk(driver_risk): logger.info('担保公司授信审核首页') waitUntilClick(driver_risk, path_Tripartite_interaction.btn_creditCheck_css.value) sleep(2) driver_risk.find_element_by_css_selector(path_Tripartite_interaction.btn_creditCheck_css.value).click() logger.info('银行待审批授信页面') waitUntilClick(driver_risk, path_Tripartite_interaction.btn_Check_css.value) driver_risk.find_element_by_css_selector(path_Tripartite_interaction.btn_Check_css.value).click() logger.info('审批授信评分卡页面') waitUntilClick(driver_risk, path_Tripartite_interaction.btn_toCheck_css.value) sleep(1) driver_risk.find_element_by_css_selector(path_Tripartite_interaction.btn_toCheck_css.value).click() logger.info('审批授信审核页面') sleep(0.5) driver_risk.find_element_by_css_selector(path_Tripartite_interaction.input_remarks_css.value).send_keys( '担保公司授信审批通过') driver_risk.find_element_by_css_selector(path_Tripartite_interaction.input_checkOK_css.value).click()
def replayCheck_Bank(driver_bank): logger.info('银行还款审核首页') driver_bank.find_element_by_css_selector(path_Tripartite_interaction.btn_homeBackStage_css.value).click() waitUntilClick(driver_bank, path_Tripartite_interaction.btn_replayCheck_css.value) driver_bank.find_element_by_css_selector(path_Tripartite_interaction.btn_replayCheck_css.value).click() logger.info('银行还款审核列表') waitUntilClick(driver_bank, path_Tripartite_interaction.btn_replayCheckList_css.value) driver_bank.find_element_by_css_selector(path_Tripartite_interaction.btn_replayCheckList_css.value).click() logger.info('银行还款审核') sleep(1) driver_bank.find_element_by_xpath(path_Tripartite_interaction.input_replayReason_xpath.value).send_keys("银行还款审核通过") sleep(1) driver_bank.find_element_by_xpath(path_Tripartite_interaction.btn_replayOk_xpath.value).click() sleep(1) driver_bank.quit()
def loanCheck_bank(driver_bank): logger.info('银行借款审核首页') driver_bank.find_element_by_css_selector(path_Tripartite_interaction.btn_homeBackStage_css.value).click() waitUntilClick(driver_bank, path_Tripartite_interaction.btn_LoanCheck_css.value) sleep(2) driver_bank.find_element_by_css_selector(path_Tripartite_interaction.btn_LoanCheck_css.value).click() logger.info('银行借款审核列表首页') waitUntilClick(driver_bank, path_Tripartite_interaction.btn_CheckBank_css.value) driver_bank.find_element_by_css_selector(path_Tripartite_interaction.btn_CheckBank_css.value).click() logger.info('银行审核页面') sleep(1) driver_bank.find_element_by_css_selector(path_Tripartite_interaction.btn_CheckOkReason_css.value).send_keys( "银行借款审核通过") sleep(1) driver_bank.find_element_by_css_selector(path_Tripartite_interaction.btn_checkOkBank_css.value).click() sleep(1)
def companyPassForgetForward(act): driver = webdriver.Chrome() driver.maximize_window() driver.get(url_forward) logger.info("登录页面") waitUntilClick(driver, loginOn.href_passForget_css.value) sleep(1) driver.find_element_by_css_selector( loginOn.href_passForget_css.value).click() waitUntilClick(driver, loginOn.btn_nextPwd1_css.value) logger.info("安全验证页面") driver.find_element_by_css_selector( loginOn.input_phoneNum_css.value).send_keys(act) driver.find_element_by_css_selector( loginOn.input_veryCode_css.value).send_keys(' ') flushDb() driver.find_element_by_css_selector( loginOn.btn_phoneVeryCode_css.value).click() while 1: message = getPhoneMessage().get("forgeMes") if message is None: sleep(1) continue else: break driver.find_element_by_css_selector( loginOn.input_phoneVeryCode_css.value).send_keys( message.strip().strip('"')) driver.find_element_by_css_selector(loginOn.btn_nextPwd1_css.value).click() waitUntilClick(driver, loginOn.btn_nextPwd2_css.value) logger.info("重置密码页面") driver.find_element_by_css_selector( loginOn.input_newPwd_css.value).send_keys(pwd) driver.find_element_by_css_selector( loginOn.input_newPwdCon_css.value).send_keys(pwd) driver.find_element_by_css_selector(loginOn.btn_nextPwd2_css.value).click() sleep(1) driver.quit()
def loanReview(driver_bank): sleep(2) logger.info('银行放款审核首页') driver_bank.find_element_by_css_selector(path_Tripartite_interaction.btn_homeBackStage_css.value).click() waitUntilClick(driver_bank, path_Tripartite_interaction.btn_loanReview_css.value) sleep(1) driver_bank.find_element_by_css_selector(path_Tripartite_interaction.btn_loanReview_css.value).click() logger.info('银行放款审核列表') waitUntilClick(driver_bank, path_Tripartite_interaction.btn_loanCheck_css.value) driver_bank.find_element_by_css_selector(path_Tripartite_interaction.btn_loanCheck_css.value).click() logger.info('银行放款审核页面') waitUntilDisplay_xpath(driver_bank, path_Tripartite_interaction.btn_loanOk_xpath.value) sleep(0.5) driver_bank.find_element_by_xpath(path_Tripartite_interaction.btn_calender_xpath.value).click() el = driver_bank.find_element_by_xpath(path_Tripartite_interaction.choose_calender_xpath.value) sleep(0.5) el.send_keys(Keys.ENTER) driver_bank.find_element_by_xpath(path_Tripartite_interaction.input_loanReason_xpath.value).send_keys("银行放款通过") sleep(0.5) driver_bank.find_element_by_xpath(path_Tripartite_interaction.btn_loanOk_xpath.value).click() waitUntilClick_xpath(driver_bank, path_Tripartite_interaction.btn_tagLoan_xpath.value) sleep(2)
def test_infoReg(): if runMode == 'UI': def_name = sys._getframe().f_code.co_name test_Assert = Assert.Assertions(def_name) logger.info("开始执行脚本%s:\n", def_name) # 对个人信息企业信息进行删除操作 deletePerInforAndComInfor() logger.info("对个人信息企业信息进行删除操作") if jenkins: option = webdriver.ChromeOptions() option.add_argument('headless') # 浏览器不提供可视化页面 option.add_argument('no-sandbox') # 以最高权限运行 option.add_argument('--start-maximized') # 最大化运行(全屏窗口)设置元素定位比较准确 option.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug option.add_argument('--window-size=1920,1080') # 设置浏览器分辨率(窗口大小) driver = webdriver.Chrome(options=option) else: driver = webdriver.Chrome(executable_path=driverPath) driver.maximize_window() driver.get(url_forward) # 登陆页面 login(driver) waitUntilDisplay(driver, loginOn.link_home_css.value) sleep(1) homeText = driver.find_element_by_css_selector( loginOn.link_home_css.value) test_Assert.assert_text_ui(homeText.text, '首页') logger.info("进入登陆页面") name = yamldict['test_personalInfoRegList']['name'] idNum = yamldict['test_personalInfoRegList']['id_card'] BaseFunction.waitUntilClick(driver, path_personalInfoReg.btn_aut_css.value) picture_dir = os.getcwd() pcture_dirOne = '\\test_data\\picture\\id_1.jpg' pcture_dirTwo = '\\test_data\\picture\\id_2.jpg' driver.find_element_by_css_selector( path_personalInfoReg.file_idPicture1_css.value).send_keys( picture_dir + pcture_dirOne) BaseFunction.waitUntilDisplay( driver, path_personalInfoReg.btn_uplaodPicture1_css.value) driver.find_element_by_css_selector( path_personalInfoReg.file_idPicture2_css.value).send_keys( picture_dir + pcture_dirTwo) BaseFunction.waitUntilDisplay( driver, path_personalInfoReg.btn_uplaodPicture2_css.value) waitUntilClick(driver, path_personalInfoReg.btn_aut_css.value) sleep(3) driver.find_element_by_css_selector( path_personalInfoReg.btn_aut_css.value).click() getVerification_ui(RequestURL, act) BaseFunction.waitUntilDisplay( driver, path_personalInfoReg.txt_auting_css.value) text_auting = driver.find_element_by_css_selector( path_personalInfoReg.txt_auting_css.value).text test_Assert.assert_text_ui(text_auting, '认证中') logger.info("实名认证中画面显示") text_name_css = driver.find_element_by_css_selector( path_personalInfoReg.txt_name_css.value).text txt_idNum_css = driver.find_element_by_css_selector( path_personalInfoReg.txt_idNum_css.value).text text_phoneNum_css = driver.find_element_by_css_selector( path_personalInfoReg.txt_phoneNum_css.value).text test_Assert.assert_text_ui(text_name_css, name) test_Assert.assert_text_ui(txt_idNum_css, idNum) test_Assert.assert_text_ui(text_phoneNum_css, act) WebDriverWait(driver, 1200).until( EC.presence_of_element_located( (By.CSS_SELECTOR, path_personalInfoReg.txt_actSucess_css.value))) text_actSucess = driver.find_element_by_css_selector( path_personalInfoReg.txt_actSucess_css.value).text test_Assert.assert_text_ui(text_actSucess, "认证成功") logger.info("实名认证成功画面显示") driver.find_element_by_css_selector( path_personalInfoReg.btn_actInfor_css.value).click() titleText = driver.find_element_by_css_selector( path_personalInfoReg.txt_aut_css.value) test_Assert.assert_text_ui(titleText.text, '实名认证') logger.info("点击查看认证信息按钮,跳转到实名认证画面") driver.quit()
def creditExtension(driver_forward): waitUntilClick(driver_forward, path_Tripartite_interaction.btn_home_css.value) sleep(3) logger.info('进入到前端首页') driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_home_css.value).click() logger.info('进入到前端进入产品选择首页') sleep(0.5) waitUntilClick(driver_forward, path_Tripartite_interaction.btn_apply_css.value) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_apply_css.value).click() sleep(1.5) logger.info('进入到前端进入产品详情页') path = "//*[text() = \'" + product_name + "\']/../../a/button" # 查看详情按钮 waitUntilClick_xpath(driver_forward, path) driver_forward.find_element_by_xpath(path).click() logger.info('进入到前端进入产品借款页') waitUntilClick(driver_forward, path_Tripartite_interaction.btn_rent_css.value) sleep(1.5) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_rent_css.value).click() # 授信采购信息页面 logger.info('进入授信采购信息页面') sleep(1.5) waitUntilClick(driver_forward, path_Tripartite_interaction.input_bankNum_css.value) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.input_bankNum_css.value).send_keys( "1234567890123") while True: try: driver_forward.find_element_by_css_selector(path_Tripartite_interaction.select_province_css.value).click() sleep(1) driver_forward.find_elements_by_xpath("//*[text() = '山西省']")[0].click() break except: continue while True: try: driver_forward.find_element_by_css_selector(path_Tripartite_interaction.select_city_css.value).click() sleep(1) driver_forward.find_elements_by_xpath("//*[text() = '太原市']")[0].click() break except: continue driver_forward.find_element_by_css_selector(path_Tripartite_interaction.input_branchBank_css.value).send_keys( "太原文博支行") el = driver_forward.find_element_by_css_selector(path_Tripartite_interaction.select_branchBank_css.value) el.click() sleep(1) el.send_keys(Keys.ENTER) sleep(0.5) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_next1_css.value).click() # 基本资料页面 logger.info('进入授信基本资料页面') waitUntilClick(driver_forward, path_Tripartite_interaction.btn_next2_css.value) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_next2_css.value).click() # 授信资料完善页面 logger.info('授信资料完善页面') waitUntilClick(driver_forward, path_Tripartite_interaction.checkBox_agree_css.value) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.checkBox_agree_css.value).click() driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_submit_css.value).click() # 授信完成页面 logger.info('授信完成页面') while True: # 活体认证欺诈性校验 try: sleep(5) getVerification() break except: continue # 活体认证 WebDriverWait(driver_forward, 1200).until( EC.presence_of_element_located((By.CSS_SELECTOR, path_Tripartite_interaction.text_apply_css.value))) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_myMain_css.value).click() logger.info("实名认证成功画面显示")
def loanApply(driver_forward): sleep(2) productChoose(driver_forward) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.select_productQuery_css.value).click() waitUntilClick(driver_forward, path_Tripartite_interaction.btn_productSubmit_css.value) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_productSubmit_css.value).click() logger.info('进入收款账户管理画面') waitUntilClick(driver_forward, path_Tripartite_interaction.btn_next_css.value) sleep(1) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.input_bankNumMan_css.value).send_keys( '12222221222222') driver_forward.find_element_by_css_selector(path_Tripartite_interaction.input_bankPhone_css.value).send_keys( company_user) flushDb() driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_veryCod_css.value).click() while 1: message = getPhoneMessage().get("loanMes") if message is None: sleep(0.5) continue else: break driver_forward.find_element_by_css_selector(path_Tripartite_interaction.input_veryCod_css.value).send_keys( message.strip().strip('"')) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_next_css.value).click() logger.info('银行卡已经添加') logger.info('进入借款申请画面') sleep(2) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.select_act_css.value).click() sleep(0.5) driver_forward.find_element_by_xpath("//*[text() = '12222221222222']").click() driver_forward.find_element_by_css_selector(path_Tripartite_interaction.input_loanMoney_css.value).send_keys( '90000') driver_forward.find_element_by_css_selector(path_Tripartite_interaction.input_loanMonth_css.value).send_keys( '12') while True: try: driver_forward.find_element_by_css_selector( path_Tripartite_interaction.select_repaymentWay_css.value).click() sleep(1) driver_forward.find_element_by_xpath("//*[text() = '随借随还']").click() break except: continue driver_forward.find_element_by_css_selector(path_Tripartite_interaction.input_reason_css.value).send_keys( '政府项目借贷') driver_forward.find_element_by_css_selector(path_Tripartite_interaction.checkBox_agreeLoan_css.value).click() driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_submitLoan_css.value).click() # 点击返回 while True: # 活体认证欺诈性校验 try: sleep(5) getVerification() break except: continue WebDriverWait(driver_forward, 1200).until( EC.presence_of_element_located((By.CSS_SELECTOR, path_Tripartite_interaction.text_back_css.value))) driver_forward.find_element_by_css_selector(path_Tripartite_interaction.btn_myMain_css.value).click()
def createProduct(driver): waitUntilClick(driver, path_Tripartite_interaction.btn_homeBackStage_css.value) sleep(2) driver.find_element_by_css_selector( path_Tripartite_interaction.btn_homeBackStage_css.value).click() logger.info('首页') driver.refresh() sleep(3) driver.find_elements_by_xpath( path_backStage_authentication.btn_goodList_xpath.value)[0].click() sleep(1) logger.info('产品基本信息') driver.find_element_by_css_selector( path_backStage_authentication.btn_goodAdd_css.value).click() waitUntilClick(driver, path_backStage_authentication.choose_goodType_css.value) driver.find_element_by_css_selector( path_backStage_authentication.choose_goodType_css.value).click() el1 = driver.find_element_by_css_selector( path_backStage_authentication.choose_goodType_css.value) scrollText(driver, el1, '财金通') driver.find_element_by_css_selector( path_backStage_authentication.input_goodName_css.value).send_keys( product_name) driver.find_element_by_css_selector( path_backStage_authentication.cal_okTime.value).click() el2 = driver.find_element_by_css_selector( path_backStage_authentication.input_cal_css.value) el2.send_keys(Keys.ENTER) driver.find_element_by_css_selector( path_backStage_authentication.choose_goodStatus_css.value).click() el3 = driver.find_element_by_css_selector( path_backStage_authentication.choose_goodStatus_css.value) scrollText(driver, el3, '启用') el4 = driver.find_element_by_css_selector( path_backStage_authentication.input_loanMin_css.value) el4.send_keys(Keys.CONTROL + 'a') el4.send_keys(Keys.DELETE) el4.send_keys('1') el5 = driver.find_element_by_css_selector( path_backStage_authentication.input_loanMax_css.value) el5.send_keys(Keys.CONTROL + 'a') el5.send_keys(Keys.DELETE) el5.send_keys('1000000') driver.find_element_by_css_selector( path_backStage_authentication.input_payWay1_css.value).click() driver.find_element_by_css_selector( path_backStage_authentication.input_payWay2_css.value).click() driver.find_element_by_css_selector( path_backStage_authentication.choose_loanGetWay_css.value).click() el6 = driver.find_element_by_css_selector( path_backStage_authentication.choose_loanGetWay_css.value) scrollText(driver, el6, '按日') driver.find_element_by_css_selector( path_backStage_authentication.choose_rendItem_css.value).click() el7 = driver.find_element_by_css_selector( path_backStage_authentication.choose_rendItem_css.value) scrollText(driver, el7, '按日') if rend_rule == 1: rule = '算头算尾' elif rend_rule == 2: rule = '算头不算尾' elif rend_rule == 3: rule = '算尾不算头' if rend_day == 1: day = '360天' elif rend_day == 2: day = '365天' driver.find_element_by_css_selector( path_backStage_authentication.choose_rendItem_css.value).click() el8 = driver.find_element_by_css_selector( path_backStage_authentication.choose_rendItem_css.value) scrollText(driver, el8, day) driver.find_element_by_css_selector( path_backStage_authentication.choose_rendDay_css.value).click() el9 = driver.find_element_by_css_selector( path_backStage_authentication.choose_rendDay_css.value) scrollText(driver, el9, rule) el10 = driver.find_element_by_css_selector( path_backStage_authentication.input_productMon_css.value) el10.send_keys(Keys.CONTROL + 'a') el10.send_keys(Keys.DELETE) el10.send_keys('13') driver.find_element_by_css_selector( path_backStage_authentication.choose_giveMoneyWay_css.value).click() el11 = driver.find_element_by_css_selector( path_backStage_authentication.choose_giveMoneyWay_css.value) scrollText(driver, el11, '随借随还') el12 = driver.find_element_by_css_selector( path_backStage_authentication.input_presentYearMin_css.value) el12.send_keys(Keys.CONTROL + 'a') el12.send_keys(Keys.DELETE) el12.send_keys('1') el13 = driver.find_element_by_css_selector( path_backStage_authentication.input_presentYearMax_css.value) el13.send_keys(Keys.CONTROL + 'a') el13.send_keys(Keys.DELETE) el13.send_keys('15') picture_dir1 = os.getcwd() + '\\test_data\\picture\\id_3.jpg' picture_dir2 = os.getcwd() + '\\test_data\\picture\\id_4.jpg' driver.find_element_by_css_selector( path_backStage_authentication.upload_pic4_css.value).send_keys( picture_dir1) driver.find_element_by_css_selector( path_backStage_authentication.upload_pic5_css.value).send_keys( picture_dir2) driver.find_element_by_css_selector( path_backStage_authentication.choose_risk_css.value).click() el14 = driver.find_element_by_css_selector( path_backStage_authentication.choose_risk_css.value) scrollText(driver, el14, autoTest_RiskName) driver.find_element_by_css_selector( path_backStage_authentication.choose_giveMoneyWay1_css.value).click() el15 = driver.find_element_by_css_selector( path_backStage_authentication.choose_giveMoneyWay1_css.value) scrollText(driver, el15, '先交费后放款') driver.find_element_by_css_selector( path_backStage_authentication.input_area_css.value).send_keys( '该产品价格实惠公道') driver.find_element_by_css_selector( path_backStage_authentication.btn_next1_css.value).click() logger.info('产品特性') waitUntilClick(driver, path_backStage_authentication.btn_add_css.value) sleep(0.5) driver.find_element_by_css_selector( path_backStage_authentication.btn_add_css.value).click() sleep(0.5) driver.find_element_by_css_selector( path_backStage_authentication.input_characteristicName_css.value ).send_keys('利率低') driver.find_element_by_css_selector( path_backStage_authentication.input_characteristicDes_css.value ).send_keys('利率低,很nice的产品') driver.find_element_by_css_selector( path_backStage_authentication.btn_save_css.value).click() waitUntilClick(driver, path_backStage_authentication.btn_next2_xpath.value) sleep(0.5) driver.find_element_by_css_selector( path_backStage_authentication.btn_next2_xpath.value).click() logger.info('计分卡') waitUntilClick(driver, path_backStage_authentication.btn_next3_xpath.value) sleep(0.5) driver.find_element_by_css_selector( path_backStage_authentication.btn_next3_xpath.value).click() waitUntilClick(driver, path_backStage_authentication.check_content_css.value) sleep(0.5) logger.info('进件信息') driver.find_element_by_css_selector( path_backStage_authentication.check_content_css.value).click() driver.find_element_by_css_selector( path_backStage_authentication.btn_submit_css.value).click() sleep(1)
def authentication(driver, Type): if Type == 1: backStageLogin(driver, company_bank, company_bank_pass, 1) else: backStageLogin(driver, company_Guarantee, company_Guarantee_pass, 1) sleep(3) flushDb() driver.find_element_by_css_selector( path_backStage_authentication.btn_codeAu_css.value).click() while 1: if Type == 1: message = getPhoneMessage().get("AuBank") else: message = getPhoneMessage().get("AuRisk") if message is None: sleep(1) continue else: break message = message.strip().strip('"') driver.find_element_by_css_selector( path_backStage_authentication.input_codeAu_css.value).send_keys( message) picture_dir1 = os.getcwd() + '\\test_data\\picture\\id_1.jpg' picture_dir2 = os.getcwd() + '\\test_data\\picture\\id_2.jpg' picture_dir3 = os.getcwd() + '\\test_data\\picture\\id_3.jpg' driver.find_element_by_css_selector( path_backStage_authentication.upload_pic1_css.value).send_keys( picture_dir1) driver.find_element_by_css_selector( path_backStage_authentication.upload_pic2_css.value).send_keys( picture_dir2) sleep(1) driver.find_element_by_css_selector( path_backStage_authentication.btn_submitAu_css.value).click() # 企业信息认证 logger.info('企业信息认证') waitUntilClick(driver, path_backStage_authentication.btn_goToAu_css.value) sleep(1) driver.find_element_by_css_selector( path_backStage_authentication.input_soCode_css.value).send_keys( '515328000000000510') driver.find_element_by_css_selector( path_backStage_authentication.input_layName_css.value).send_keys('黄晓明') driver.find_element_by_css_selector( path_backStage_authentication.input_IdCardLay_css.value).send_keys( '110101199003077774') sleep(1) driver.find_element_by_css_selector( path_backStage_authentication.input_addressLay_css.value).send_keys( '陆家嘴金砖大厦') driver.find_element_by_css_selector( path_backStage_authentication.input_postLay_css.value).send_keys( '220000') driver.find_element_by_css_selector( path_backStage_authentication.upload_pic3_css.value).send_keys( picture_dir3) driver.find_element_by_css_selector( path_backStage_authentication.btn_goToAu_css.value).click() logger.info('协议内容确认页面') waitUntilClick( driver, '#root > div > section > section > main > div > div > div > div > div > div:nth-child(2) > div > button' ) driver.find_element_by_css_selector( path_backStage_authentication.checkBox_agree_css.value).click() sleep(0.5) driver.find_element_by_css_selector( path_backStage_authentication.btn_startAu_css.value).click() if Type == 0: # 活体认证欺诈性校验(担保公司) getVerification_ui(RequestURL, company_Guarantee) else: # 活体认证欺诈性校验(银行) getVerification_ui(RequestURL, company_bank) logger.info('二维码认证页面') while True: try: text = driver.find_element_by_css_selector( path_backStage_authentication.text_au_css.value).text if text == '认证成功': break except: sleep(0.5) continue if Type == 0: driver.quit()
def test_Tripartite_interaction(): def_name = sys._getframe().f_code.co_name logger.info("开始执行脚本%s:\n", def_name) # 前端账户授信申请 if runMode == 'UI': if jenkins: option = webdriver.ChromeOptions() option.add_argument('headless') # 浏览器不提供可视化页面 option.add_argument('no-sandbox') # 以最高权限运行 option.add_argument('--start-maximized') # 最大化运行(全屏窗口)设置元素定位比较准确 option.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug option.add_argument('--window-size=1920,1080') # 设置浏览器分辨率(窗口大小) driver_forward = webdriver.Chrome(options=option) else: driver_forward = webdriver.Chrome(executable_path=driverPath) driver_forward.maximize_window() driver_forward.get(url_forward) logger.info('前端账户登录授信申请') login(driver_forward) sleep(2) creditExtension(driver_forward) else: waiteForClick(mobileDriver(text='产品服务')) el = mobileDriver(text='我的', name='android.view.View', type='android.view.View') dragUntilTextAppear(el, '产品服务', product_name) waiteForClick(mobileDriver(text=product_name)) waiteForClick(mobileDriver(text='立即申请')) logger.info('授信采购信息画面') waiteForClick(mobileDriver(text='请输入银行账号')) text('123456789012') mobileDriver(text='分支行').click() waiteForClick(mobileDriver(text='请选择项目')) waiteForClick(mobileDriver(text='请输入项目名称').parent().parent().parent().child()[2]) waiteForClick(mobileDriver(text='下一步')) logger.info('授信基本资料页面') waiteForClick(mobileDriver(text='下一步')) logger.info('授信页面') sleep(2) mobileDriver(text='企业经营场所照片').drag_to(mobileDriver(text='业务申请'), 0.5) mobileDriver(text='企业征信').drag_to(mobileDriver(text='业务申请'), 0.5) mobileDriver(text='财务证明资料').drag_to(mobileDriver(text='业务申请'), 0.5) waiteForClick(mobileDriver(text='我已阅读并同意提交资料', type='android.widget.CheckBox').child().child()) waiteForClick(mobileDriver(text='提交授信')) # 活体认证欺诈性校验 getVerification() while True: flg = mobileDriver(text='安全认证中').exists() if flg: sleep(1) break else: continue while True: flg = mobileDriver(text='安全认证中').exists() if flg: continue else: sleep(1) break sleep(1) picture_dir = os.getcwd() + '\\test_data\\picture\\id_7.png' touch(Template(picture_dir)) touch(Template(picture_dir)) touch(Template(picture_dir)) sleep(2) picture_dir1 = os.getcwd() + '\\test_data\\picture\\id_8.png' touch(Template(picture_dir1)) logger.info('授信完成页面') # 银行授信审核 if jenkins: option = webdriver.ChromeOptions() option.add_argument('headless') # 浏览器不提供可视化页面 option.add_argument('no-sandbox') # 以最高权限运行 option.add_argument('--start-maximized') # 最大化运行(全屏窗口)设置元素定位比较准确 option.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug option.add_argument('--window-size=1920,1080') # 设置浏览器分辨率(窗口大小) driver_bank = webdriver.Chrome(options=option) else: driver_bank = webdriver.Chrome(executable_path=driverPath) driver_bank.maximize_window() driver_bank.get(url_back) logger.info('银行授信审核') backStageLogin(driver_bank, company_bank, company_bank_pass, 0) CreditAudit_Bank(driver_bank) # 担保公司审核 if jenkins: option = webdriver.ChromeOptions() option.add_argument('headless') # 浏览器不提供可视化页面 option.add_argument('no-sandbox') # 以最高权限运行 option.add_argument('--start-maximized') # 最大化运行(全屏窗口)设置元素定位比较准确 option.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug option.add_argument('--window-size=1920,1080') # 设置浏览器分辨率(窗口大小) driver_bank = webdriver.Chrome(options=option) else: driver_risk = webdriver.Chrome(executable_path=driverPath) driver_risk.maximize_window() driver_risk.get(url_back) logger.info('担保公司审核') backStageLogin(driver_risk, company_Guarantee, company_Guarantee_pass, 0) CreditAudit_Risk(driver_risk) # 借款申请 if runMode == 'UI': loanApply(driver_forward) else: # 移动端借款申请 waiteForClick(mobileDriver(text='我的授信')) waiteForClick(mobileDriver(text='马上使用')) logger.info('添加银行卡账户画面') waiteForClick(mobileDriver(text='请输入银行账号')) text('1234567890123') mobileDriver(text='对公银行账号').click() waiteForClick(mobileDriver(text='获取验证码')) while 1: message = getPhoneMessage().get("loanMes") if message is None: sleep(0.5) continue else: break waiteForClick(mobileDriver(textMatches='重新获取.*').parent().child()) text(message.strip().strip('"')) waiteForClick(mobileDriver(text='验证码')) waiteForClick(mobileDriver(text='确定')) logger.info('借款申请页面') waiteForClick(mobileDriver(text='请选择收款银行账号')) waiteForClick(mobileDriver(text='1234567890123')) waiteForClick(mobileDriver(text='请输入借款金额')) text('100000') mobileDriver(text='请输入借款期限').click() mobileDriver(text='请输入借款期限').click() text('8') waiteForClick(mobileDriver(text='借款金额')) waiteForClick(mobileDriver(text='请具体描述详细借款用途')) text('借钱还账') waiteForClick(mobileDriver(text='还款方式')) waiteForClick(mobileDriver(text='我已阅读并同意提交资料').child()[2]) waiteForClick(mobileDriver(text='提交借款申请')) getVerification() while True: flg = mobileDriver(text='安全认证中').exists() if flg: break else: sleep(1) continue while True: flg = mobileDriver(text='安全认证中').exists() if flg: continue else: sleep(1) break waiteForClick(mobileDriver(name='com.tencent.mm:id/dc')) waiteForClick(mobileDriver(name='com.tencent.mm:id/dc')) loanCheck_bank(driver_bank) loanCheck_Risk(driver_risk) if runMode == 'UI': # 去缴费 goToPay(driver_forward) else: waiteForClick(mobileDriver(text='我的借款')) waiteForClick(mobileDriver(text='去缴纳')) sleep(2) logger.info('还款申请页面') mobileDriver(text='担保费').drag_to(mobileDriver(text='缴费申请'), 0.5) waiteForClick(mobileDriver(text='上传担保费缴费凭证')) mobileDriver("android.widget.LinearLayout").offspring("com.tencent.mm:id/dm6").child("com.tencent.mm:id/f4b")[ 1].child( "com.tencent.mm:id/dm8").click() waiteForClick(mobileDriver(text='完成')) waiteForClick(mobileDriver(text='提交申请')) sleep(2) logger.info('还款申请完成页面') waiteForClick(mobileDriver(name='com.tencent.mm:id/dc')) waiteForClick(mobileDriver(name='com.tencent.mm:id/dc')) # 担保费审核 costAudit(driver_risk) # 银行放款审核 loanReview(driver_bank) if runMode == 'UI': # 还款申请 toRepay(driver_forward) else: waiteForClick(mobileDriver(text='我的')) waiteForClick(mobileDriver(text='我的借款')) sleep(1) waiteForClick(mobileDriver(text='我要还款')) sleep(1) waiteForClick(mobileDriver(text='请选择')) sleep(1) waiteForClick(mobileDriver(text='鞍山银行')) waiteForClick(mobileDriver(text='请输入')) text('123456789012') waiteForClick(mobileDriver(text='还款银行账号')) mobileDriver(text='合计金额').drag_to(mobileDriver(text='还款申请'), 0.5) waiteForClick(mobileDriver(text='上传还款凭证')) mobileDriver("android.widget.LinearLayout").offspring("com.tencent.mm:id/dm6").child("com.tencent.mm:id/f4b")[ 1].child( "com.tencent.mm:id/dm8").click() waiteForClick(mobileDriver(text='完成')) waiteForClick(mobileDriver(type='android.widget.CheckBox')) waiteForClick(mobileDriver(text='提交申请')) # 银行还款审核 replayCheck_Bank(driver_bank)
def test_businessInforReg(): if runMode == 'UI': def_name = sys._getframe().f_code.co_name test_Assert = Assert.Assertions(def_name) logger.info("开始执行脚本%s:\n", def_name) if jenkins: option = webdriver.ChromeOptions() option.add_argument('headless') # 浏览器不提供可视化页面 option.add_argument('no-sandbox') # 以最高权限运行 option.add_argument('--start-maximized') # 最大化运行(全屏窗口)设置元素定位比较准确 option.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug option.add_argument('--window-size=1920,1080') # 设置浏览器分辨率(窗口大小) driver = webdriver.Chrome(options=option) else: driver = webdriver.Chrome(executable_path=driverPath) driver.maximize_window() driver.get(url_forward) # 登陆页面 login(driver) waitUntilDisplay(driver, path_businessInfoReg.txt_aut_css.value) txt_auTitle = driver.find_element_by_css_selector( path_businessInfoReg.txt_aut_css.value).text test_Assert.assert_text_ui(txt_auTitle, '企业基本资料') logger.info("企业基本资料画面正常显示") # 企业证件 el = driver.find_element_by_css_selector( path_businessInfoReg.input_companyName_css.value) el.send_keys('诚泰融资租赁(上海)有限公司') waitUntilDisplay_xpath(driver, path_businessInfoReg.display_name_xpath.value) el.send_keys(Keys.ENTER) sleep(1) driver.find_element_by_css_selector( path_businessInfoReg.input_legalIdCard_css.value).send_keys(idNum) driver.find_element_by_css_selector( path_businessInfoReg.input_legalPhone_css.value).send_keys( "17621198933") while True: try: driver.find_element_by_css_selector( path_businessInfoReg.sel_province_css.value).click() sleep(0.5) driver.find_element_by_xpath("//*[text() = '河北省']").click() break except: continue sleep(0.5) while True: try: driver.find_element_by_css_selector( path_businessInfoReg.sel_city_css.value).click() sleep(0.5) driver.find_element_by_xpath("//*[text() = '邯郸市']").click() break except: continue sleep(0.5) while True: try: driver.find_element_by_css_selector( path_businessInfoReg.sel_area_css.value).click() sleep(0.5) driver.find_element_by_xpath("//*[text() = '复兴区']").click() break except: continue sleep(1) driver.find_element_by_css_selector( path_businessInfoReg.input_contractAddress_css.value).send_keys( "金砖大厦10楼") driver.find_element_by_css_selector( path_businessInfoReg.input_legalPersonPostCode_css.value ).send_keys("200120") picture_dir = os.getcwd() + '\\test_data\\picture\\id_3.jpg' driver.find_element_by_css_selector( path_businessInfoReg.upload_legalPersonCertificate_css.value ).send_keys(picture_dir) # 生成随机银行号码 bankNO = random.randint(0, 99999999999999) driver.find_element_by_css_selector( path_businessInfoReg.upload_legalPersonBankNo_css.value).send_keys( str(bankNO)) sleep(0.5) while True: try: driver.find_element_by_css_selector( path_businessInfoReg.sel_bankName_css.value).click() sleep(0.5) driver.find_element_by_xpath( "/html/body/div[6]/div/div/div/div[2]/div[1]/div/div/div[3]" ).click() break except: continue sleep(0.5) while True: try: # 法定代表人信息 driver.find_element_by_css_selector( path_businessInfoReg.sel_country_css.value).click() sleep(1) driver.find_element_by_xpath( "/html/body/div[7]/div/div/div/div[2]/div[1]/div/div/div[2]" ).click() break except: continue sleep(0.5) picture_dir2 = os.getcwd() + '\\test_data\\picture\\id_1.jpg' picture_dir3 = os.getcwd() + '\\test_data\\picture\\id_2.jpg' picture_dir4 = os.getcwd() + '\\test_data\\picture\\id_4.jpg' driver.find_element_by_css_selector( path_businessInfoReg.sel_idCard1_css.value).send_keys(picture_dir2) driver.find_element_by_css_selector( path_businessInfoReg.sel_idCard2_css.value).send_keys(picture_dir3) # 实际控制人信息 sleep(1) driver.find_element_by_css_selector( path_businessInfoReg.radio_controlPerson_css.value).click() driver.find_element_by_css_selector( path_businessInfoReg.upload_controlPersonId1_css.value).send_keys( picture_dir2) driver.find_element_by_css_selector( path_businessInfoReg.upload_controlPersonId2_css.value).send_keys( picture_dir3) driver.find_element_by_css_selector( path_businessInfoReg.upload_controlPersonFamPic_css.value ).send_keys(picture_dir4) sleep(1) driver.find_element_by_css_selector( path_businessInfoReg.radio_legalPerson_css.value).click() waitUntilClick(driver, path_businessInfoReg.bth_submit_css.value) driver.find_element_by_css_selector( path_businessInfoReg.bth_submit_css.value).click() waitUntilDisplay(driver, path_businessInfoReg.text_atCof_css.value) txt_startAuTitle = driver.find_element_by_css_selector( path_businessInfoReg.text_atCof_css.value).text test_Assert.assert_text_ui(txt_startAuTitle, '请确认协议内容') logger.info("协议确认画面正常显示") waitUntilClick_xpath( driver, '//*[@id="root"]/div/div[2]/div/div[2]/div/div/div/div[1]/div/button' ) sleep(2) driver.find_element_by_xpath( path_businessInfoReg.checkBox_agree_xpath.value).click() waitUntilClick(driver, path_businessInfoReg.btn_Certification_css.value) driver.find_element_by_css_selector( path_businessInfoReg.btn_Certification_css.value).click() waitUntilDisplay(driver, path_businessInfoReg.text_atMid_css.value) txt_middleAuTitle = driver.find_element_by_css_selector( path_businessInfoReg.text_atMid_css.value).text test_Assert.assert_text_ui(txt_middleAuTitle, '认证中') logger.info("企业信息认证中画面正常显示") # 活体认证欺诈性校验 getVerification_ui(RequestURL, act) WebDriverWait(driver, 1200).until( EC.presence_of_element_located( (By.CSS_SELECTOR, path_businessInfoReg.text_bank_css.value))) driver.find_element_by_css_selector( path_businessInfoReg.input_moneyNum_css.value).send_keys('0.5') driver.find_element_by_css_selector( path_businessInfoReg.btn_middleCnf_css.value).click() sleep(3) waitUntilDisplay(driver, path_businessInfoReg.txt_examine_css.value) txt_examineAuTitle = driver.find_element_by_css_selector( path_businessInfoReg.txt_examine_css.value).text test_Assert.assert_text_ui(txt_examineAuTitle, '审核中') logger.info("企业信息审核中画面正常显示") driver.find_element_by_css_selector( path_businessInfoReg.btn_primary_css.value).click() # 登陆页面 waitUntilDisplay(driver, path_businessInfoReg.txt_aut_css.value) txt_auTitle = driver.find_element_by_css_selector( path_businessInfoReg.txt_aut_css.value).text test_Assert.assert_text_ui(txt_auTitle, '企业基本资料') logger.info("企业基本资料画面正常显示") driver.quit() else: logger.info('企业认证画面') waiteForClick(mobileDriver(text='我的')) waiteForClick(mobileDriver(text='企业认证')) sleep(1) waiteForClick(mobileDriver(text='*上传营业执照').parent().child()[2].child()) waiteForClick(mobileDriver(text='所有图片')) waiteForClick(mobileDriver(text='自动化测试专用相册')) mobileDriver("android.widget.LinearLayout").offspring( "com.tencent.mm:id/dm6").child("com.tencent.mm:id/f4b")[1].child( "com.tencent.mm:id/dm8").click() waiteForClick(mobileDriver(text='完成')) sleep(2) waiteForClick(mobileDriver(text='*邮政编码').parent().child()[2]) text("123456") mobileDriver(text='*邮政编码').click() mobileDriver(text='法人代表证件').drag_to(mobileDriver(text='企业证件照'), 0.5) waiteForClick( mobileDriver(text='*我是').parent().child()[2].child().child()) waiteForClick( mobileDriver(text='*法人代表归属地').parent().child()[2].child()) waiteForClick(mobileDriver(text='中国境内')) sleep(2) waiteForClick( mobileDriver(text='*实控人身份').parent().child()[2].child().child()) waiteForClick( mobileDriver(text='*实控人户口本主页').parent().child()[2].child()) waiteForClick(mobileDriver(text='所有图片')) waiteForClick(mobileDriver(text='自动化测试专用相册')) mobileDriver("android.widget.LinearLayout").offspring( "com.tencent.mm:id/dm6").child("com.tencent.mm:id/f4b")[0].child( "com.tencent.mm:id/dm8").click() waiteForClick(mobileDriver(text='完成')) sleep(2) waiteForClick( mobileDriver( text='*实控人婚姻状况').parent().child()[2].child().child()[1]) waiteForClick(mobileDriver(text='*对公银行账号').parent().child()[2]) bankNO = random.randint(0, 99999999999999) text(str(bankNO)) mobileDriver(text='*对公银行账号').click() waiteForClick( mobileDriver(text='*对公开户银行').parent().child()[2].child().child()) waiteForClick(mobileDriver(text='鞍山银行')) waiteForClick(mobileDriver(text='下一步')) logger.info('平台服务协议画面') waiteForClick(mobileDriver(text='我已阅读并同意')) waiteForClick(mobileDriver(text='请输入打款金额')) text('0.1') waiteForClick(mobileDriver(text='收到的金额')) waiteForClick(mobileDriver(text='确认提交')) sleep(3) waiteForClick(mobileDriver(name='com.tencent.mm:id/dc')) # 更改企业名称 updateNameCompany()
def test_backstage_examine(): def_name = sys._getframe().f_code.co_name test_Assert = Assert.Assertions(def_name) logger.info("开始执行脚本%s:\n", def_name) if jenkins: option = webdriver.ChromeOptions() option.add_argument('headless') # 浏览器不提供可视化页面 option.add_argument('no-sandbox') # 以最高权限运行 option.add_argument('--start-maximized') # 最大化运行(全屏窗口)设置元素定位比较准确 option.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug option.add_argument('--window-size=1920,1080') # 设置浏览器分辨率(窗口大小) driver = webdriver.Chrome(options=option) else: driver = webdriver.Chrome(executable_path=driverPath) driver.maximize_window() driver.get(url_back) act = yamldict['test_backStageUserList']['company_user'] pwd = yamldict['test_backStageUserList']['company_user_pass'] # 登陆页面 backStageLogin(driver, act, pwd, 0) updateNameCompany() sleep(2) driver.find_element_by_xpath( path_backstage_examine.btn_bussMan_xpath.value).click() sleep(1) driver.find_element_by_xpath( path_backstage_examine.btn_bussList_xpath.value).click() sleep(1) elList = driver.find_elements_by_xpath( path_backstage_examine.btn_bussListName_xpath.value) index = 0 for i in range(len(elList)): path = path_backstage_examine.btn_bussListName_xpath.value + '[' + str( i + 1) + ']/' + 'td' + '[' + str(1) + ']' text = driver.find_element_by_xpath(path).text if text == businessName: index = i break bussPath = path_backstage_examine.btn_bussListName_xpath.value + '[' + str( index + 1) + ']' + '/td[8]' + '/span/a' driver.find_elements_by_xpath(bussPath)[0].click() sleep(0.5) waitUntilDisplay(driver, path_backstage_examine.txt_userInfor_css.value) userInforTxt = driver.find_element_by_css_selector( path_backstage_examine.txt_userInfor_css.value).text test_Assert.assert_text_ui(userInforTxt, "用户基本信息") logger.info('成功进入企业信息审核画面') driver.find_element_by_css_selector( path_backstage_examine.input_examine_css.value).send_keys('企业审核通过') driver.find_element_by_css_selector( path_backstage_examine.btn_code_css.value).click() while 1: message = getPhoneMessage().get("Audit") if message is None: sleep(0.5) continue else: break driver.find_element_by_css_selector( path_backstage_examine.input_code_css.value).send_keys( message.strip().strip('"')) driver.find_element_by_css_selector( path_backstage_examine.btn_examinePass_css.value).click() sleep(1) logger.info("企业认证通过") driver.quit()
def test_companyRegister(): if runMode == 'UI': def_name = sys._getframe().f_code.co_name test_Assert = Assert.Assertions(def_name) logger.info("开始执行脚本%s:\n", def_name) if jenkins: option = webdriver.ChromeOptions() option.add_argument('headless') # 浏览器不提供可视化页面 option.add_argument('no-sandbox') # 以最高权限运行 option.add_argument('--start-maximized') # 最大化运行(全屏窗口)设置元素定位比较准确 option.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug option.add_argument('--window-size=1920,1080') # 设置浏览器分辨率(窗口大小) driver = webdriver.Chrome(options=option) else: driver = webdriver.Chrome(executable_path=driverPath) driver.maximize_window() driver.get(url_ui_register) # db中清除已注册的账户 deleteInforMobile() logger.info("对已注册的账户进行删除操作") sleep(1) waitUntilClick(driver, loginOn.btn_agree_css.value) driver.find_element_by_css_selector( loginOn.btn_agree_css.value).click() waitUntilDisplay(driver, loginOn.input_act_css.value) driver.find_element_by_css_selector( loginOn.input_act_css.value).send_keys(act) driver.find_element_by_css_selector( loginOn.input_pwd_css.value).send_keys(pwd) driver.find_element_by_css_selector( loginOn.input_conPwd_css.value).send_keys(pwd) waitUntilClick(driver, loginOn.btn_phoneCode_css.value) sleep(2) flushDb() driver.find_element_by_css_selector( loginOn.btn_phoneCode_css.value).click() while 1: message = getPhoneMessage().get("regMes") if message is None: sleep(0.5) continue else: break driver.find_element_by_css_selector( loginOn.input_phoneCode_css.value).send_keys( message.strip().strip('"')) waitUntilClick(driver, loginOn.btn_agreeReg.value) driver.find_element_by_css_selector(loginOn.btn_agreeReg.value).click() title = driver.title test_Assert.assert_text_ui(title, '中小微企业金融服务聚合平台') logger.info("注册成功,返回到登陆页面") sleep(1) driver.quit() else: # touch(Template(r"C:\Users\shaojunshuai\PycharmProjects\AutoTest-python\Auto_Test\test_data\picture\id_5.png")) logger.info("小程序自动化测试开始") startWeinxin() deleteInforMobile() # 删除个人信息 # clearCache() picture_dir1 = os.getcwd() + '\\test_data\\picture\\id_9.png' touch(Template(picture_dir1)) waiteForClick(mobileDriver(text='允许')) waiteForClick(mobileDriver(text='授权手机号')) waiteForClick(mobileDriver(text='允许')) # companyPassForgetForward(act) logger.info("小程序个人实名认证页面") # 上传身份证正反面 waiteForClick(mobileDriver(text='请上传身份证头像面')) waiteForClick(mobileDriver(text='所有图片')) waiteForClick(mobileDriver(text='自动化测试专用相册')) mobileDriver("android.widget.LinearLayout").offspring( "com.tencent.mm:id/dm6").child("com.tencent.mm:id/f4b")[3].child( "com.tencent.mm:id/dm0").click() waiteForClick(mobileDriver(text='完成')) sleep(3) waiteForClick(mobileDriver(text='请上传身份证国徽面')) waiteForClick(mobileDriver(text='所有图片')) waiteForClick(mobileDriver(text='自动化测试专用相册')) mobileDriver("android.widget.LinearLayout").offspring( "com.tencent.mm:id/dm6").child("com.tencent.mm:id/f4b")[2].child( "com.tencent.mm:id/dm8").click() waiteForClick(mobileDriver(text='完成')) sleep(1) waiteForClick(mobileDriver(text='提交认证')) # 活体认证欺诈性校验 getVerification() # 等待直到元素消失 while True: if mobileDriver(text='身份证有效期至').exists(): break else: continue picture_dir = os.getcwd() + '\\test_data\\picture\\id_6.png' touch(Template(picture_dir))
def test_api_per(): logger.info("开始执行脚本%s:\n", def_name) timer = threading.Timer(1, fun_ApiTimeLoop) timer.start() time.sleep(30) # n秒后停止定时器 timer.cancel()