def __selectCompanyBank(self, account): """ describe: form表单点击新增选择归属账户 :param account: 银行账户 :return: None """ self.click(*(By.ID, 'form_companyBankId')) WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located( (By.ID, 'undefined_BANK_ACCOUNT_NUM'))) self.send_text(account, *(By.ID, 'undefined_BANK_ACCOUNT_NUM')) self.click(*(By.XPATH, '/html/body//form/div[2]/div/button[1]')) sleep(1) try: self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() except: logger.warning('警告,第一次没找到,重新查找点击') self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() logger.info('选择的核算主体编码为 : {}'.format(account)) self.click(*(By.XPATH, '/html/body//div//span/button[2]'))
def selectReceiveVendor(self, name, account=''): """ describe: 选择收票方 :param text: 出票方 :param text: 出票方 :return: None """ self.click(*(By.ID, 'boeHeaderChild.0.vendorId')) WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located((By.ID, 'itemname'))) self.send_text(name, *(By.ID, 'itemname')) self.send_text(account, *(By.ID, 'itembankAccount')) self.click(*(By.XPATH, '/html/body//form/div[3]/div/button[1]')) sleep(1) try: self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() except: logger.warning('警告,第一次没找到,重新查找点击') self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() logger.info('选择的收款人为 : {}'.format(name)) logger.info('选择的银行账户为 : {}'.format(account)) self.click(*(By.XPATH, '/html/body//div//span/button[2]'))
def __selectSignEmp(self, loginName, realName=''): """ describe: form表单选择签收人 :param loginName: 登录账号 :param realName: 员工名称 :return: None """ self.click(*(By.ID, 'form_signEmpId')) WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located((By.ID, 'undefined_LOGIN_NAME'))) self.send_text(loginName, *(By.ID, 'undefined_LOGIN_NAME')) self.send_text(realName, *(By.ID, 'undefined_REAL_NAME')) self.click(*(By.XPATH, '/html/body//form/div[3]/div/button[1]')) sleep(3) try: self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() except: logger.warning('警告,第一次没找到,重新查找点击') self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() logger.info('选择登录账号为 : {}'.format(loginName)) logger.info('选择员工名称为 : {}'.format(realName)) self.click(*(By.XPATH, '/html/body//div//span/button[2]'))
def __selectLe(self, leCode, leName=''): """ describe: form表单点击新增选择核算主体 :param leCode: 核算主体编码 :param leName: 核算主体名称 :return: None """ WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located((By.ID, 'form_leId'))) self.click(*(By.ID, 'form_leId')) WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located((By.ID, 'undefined_CODE'))) self.send_text(leCode, *(By.ID, 'undefined_CODE')) self.send_text(leName, *(By.ID, 'undefined_NAME')) self.click(*(By.XPATH, '/html/body//form/div[3]/div/button[1]')) sleep(1) try: self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() except: logger.warning('警告,第一次没找到,重新查找点击') self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() logger.info('选择的核算主体编码为 : {}'.format(leCode)) logger.info('选择的核算主体名称为 : {}'.format(leName)) self.click(*(By.XPATH, '/html/body//div//span/button[2]'))
def __selectOperatorDept(self, deptName, companyName=''): """ describe: form表单选择经办部门 :param deptName: 部门名称 :param companyName: 公司名称 :return: None """ self.click(*(By.ID, 'form_operatorDeptId')) WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located((By.ID, 'undefined_DEPT_NAME'))) self.send_text(deptName, *(By.ID, 'undefined_DEPT_NAME')) self.send_text(companyName, *(By.ID, 'undefined_COMPANY_NAME')) self.click(*(By.XPATH, '/html/body//form/div[3]/div/button[1]')) sleep(1) try: self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() except: logger.warning('警告,第一次没找到,重新查找点击') self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() logger.info('选择部门名称为 : {}'.format(deptName)) logger.info('选择公司名称为 : {}'.format(companyName)) self.click(*(By.XPATH, '/html/body//div//span/button[2]'))
def __selectOperator(self, empNo, empName=''): """ describe: form表单选择经办人 :param empNo: 员工工号 :param empNum: 员工名称 :return: None """ self.click(*(By.ID, 'form_operatorId')) WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located((By.ID, 'undefined_EMP_NO'))) self.send_text(empNo, *(By.ID, 'undefined_EMP_NO')) self.send_text(empName, *(By.ID, 'undefined_EMP_NAME')) self.click(*(By.XPATH, '/html/body//form/div[3]/div/button[1]')) sleep(1) try: self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() except: logger.warning('警告,第一次没找到,重新查找点击') self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() logger.info('选择员工工号为 : {}'.format(empNo)) logger.info('选择员工名称为 : {}'.format(empName)) self.click(*(By.XPATH, '/html/body//div//span/button[2]'))
def selectSettlementUnit(self, vendorCode, vendorName=''): self.find_element( *(By.CLASS_NAME, 'contract-payment-plan')).find_elements( *(By.ID, 'form_vendorId'))[len( self.find_element(*( By.CLASS_NAME, 'contract-payment-plan')).find_elements( *(By.ID, 'form_vendorId'))) - 1].click() WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located((By.ID, 'undefined_vendorCode'))) self.send_text(vendorCode, *(By.ID, 'undefined_vendorCode')) self.send_text(vendorName, *(By.ID, 'undefined_vendorName')) self.click(*(By.XPATH, '/html/body//form/div[3]/div/button[1]')) sleep(1) try: self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() except: logger.warning('警告,第一次没找到,重新查找点击') self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() logger.info('选择结算单位的部门编码为 : {}'.format(vendorCode)) logger.info('选择结算单位的部门名称为 : {}'.format(vendorName)) self.click(*(By.XPATH, '/html/body//div[3]/span/button[2]'))
def selectDepartment(self, deptCode, deptName): WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located(self._expenseDeptId)) try: self.click(*self._expenseDeptId) except Exception as e: logger.warning("出现警告,警告信息为:{},重试点击操作".format(type(e))) self.click(*self._expenseDeptId) self.send_text(deptCode, *(By.ID, 'itemDEPT_CODE')) self.send_text(deptName, *(By.ID, 'itemDEPT_NAME')) self.click(*(By.XPATH, '/html/body//form/div[3]/div/button[1]')) sleep(1) self.click(*(By.XPATH, '/html/body//table/tbody/tr[1]')) self.click(*(By.XPATH, '/html/body//div[3]/span/button[2]')) logger.info('选择的部门编码为:{}'.format(deptCode)) logger.info('选择的部门名称为:{}'.format(deptName))
def getInLedger(self, typeName: str) -> None: """ 说明: 根据 typeName 进入不同的台账页面 :param typeName: 台账名字 :return: None """ self.driver.implicitly_wait(1) for i in range(len(self.find_elements( *(By.CLASS_NAME, 'card') ))): if self.find_elements(*(By.CLASS_NAME, 'card'))[i].find_element(*(By.CLASS_NAME, 'title')).text == typeName: self.find_elements(*(By.CLASS_NAME, 'card'))[i].find_element(*(By.CLASS_NAME, 'svg-icon')).click() logger.info('进入 {} 页面'.format(typeName)) break if i == len(self.find_elements( *(By.CLASS_NAME, 'card') ))-1: logger.warning('Don\'t find Page') raise Exception('Don\'t find Page')
def selectBuyer(self, vendorName): self.click_buyer() WebDriverWait(self.driver, 5).until(EC.visibility_of_element_located( (By.ID, 'itemVENDOR_NAME'))) self.send_text(vendorName, *(By.ID, 'itemVENDOR_NAME')) self.click(*(By.XPATH, '/html/body//form/div[2]/div/button[1]')) sleep(1) try: self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() except: logger.warning('警告,第一次没找到,重新查找点击') self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() logger.info('选择的购买方为 : {}'.format(vendorName)) self.click(*(By.XPATH, '/html/body//div//span/button[2]'))
def selectGoods(self, goodsCode, goodsName=''): self.click_goodsName() WebDriverWait(self.driver, 5).until(EC.visibility_of_element_located( (By.ID, 'itemtradeCode'))) self.send_text(goodsCode, *(By.ID, 'itemtradeCode')) self.send_text(goodsName, *(By.ID, 'itemtradeName')) self.click(*(By.XPATH, '/html/body//form/div[3]/div/button[1]')) sleep(1) try: self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() except: logger.warning('警告,第一次没找到,重新查找点击') self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() logger.info('选择的商品编码为 : {}'.format(goodsCode)) logger.info('选择的商品名称为 : {}'.format(goodsName)) self.click(*(By.XPATH, '/html/body//div//span/button[2]'))
def selectContract(self, keyContract): self.click_contract() WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located((By.ID, 'itemkeyword'))) self.send_text(keyContract, *(By.ID, 'itemkeyword')) self.click(*(By.XPATH, '/html/body//form/div[2]/div/button[1]')) sleep(1) try: self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() except: logger.warning('警告,第一次没找到,重新查找点击') self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() logger.info('选择合同编码为 : {}'.format(keyContract)) self.click(*(By.XPATH, '/html/body//div//span/button[2]'))
def selectSalaryDept(self, deptCode, deptName=''): self.click_salaryDept() WebDriverWait(self.driver, 5).until(EC.visibility_of_element_located( (By.ID, 'undefined_CODE'))) self.send_text(deptCode, *(By.ID, 'undefined_CODE')) self.send_text(deptName, *(By.ID, 'undefined_NAME')) self.click(*(By.XPATH, '/html/body//form/div[3]/div/button[1]')) sleep(1) try: self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() except: logger.warning('警告,第一次没找到,重新查找点击') self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() logger.info('选择的责任部门编码为 : {}'.format(deptCode)) logger.info('选择的责任部门名称为 : {}'.format(deptName)) self.click(*(By.XPATH, '/html/body//div//span/button[2]'))
def selectCostExpenseDept(self, deptCode, deptName='', count='0'): self._costExpenseDept = (By.ID, 'cost.{}.expenseDeptId'.format(count)) self.find_elements(*self._costExpenseDept)[len(self.find_elements(*self._costExpenseDept))-1].click() WebDriverWait(self.driver, 5).until(EC.visibility_of_element_located( (By.ID, 'itemDEPT_CODE'))) self.send_text(deptCode, *(By.ID, 'itemDEPT_CODE')) self.send_text(deptName, *(By.ID, 'itemDEPT_NAME')) self.click(*(By.XPATH, '/html/body//form/div[3]/div/button[1]')) sleep(1) try: self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() except: logger.warning('警告,第一次没找到,重新查找点击') self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() logger.info('选择的部门编码为 : {}'.format(deptCode)) logger.info('选择的部门名称为 : {}'.format(deptName)) self.click(*(By.XPATH, '/html/body//div//span/button[2]'))
def selectVendorAccount(self, accountNum, accountName=''): self.click_vendorAccount() WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located((By.ID, 'itembankAccount'))) self.send_text(accountNum, *(By.ID, 'itembankAccount')) self.send_text(accountName, *(By.ID, 'itemname')) self.click(*(By.XPATH, '/html/body//form/div[3]/div/button[1]')) sleep(1) try: self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() except: logger.warning('警告,第一次没找到,重新查找点击') self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() logger.info('选择的收款人为 : {}'.format(accountName)) logger.info('选择的银行账户为 : {}'.format(accountNum)) self.click(*(By.XPATH, '/html/body//div//span/button[2]'))
def selectResUser(self, empNo, empName=''): self.click(*self._respUser) WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located((By.ID, 'undefined_EMP_NO'))) self.send_text(empNo, *(By.ID, 'undefined_EMP_NO')) self.send_text(empName, *(By.ID, 'undefined_REAL_NAME')) self.click(*(By.XPATH, '/html/body//form/div[3]/div/button[1]')) sleep(1) try: self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() except: logger.warning('警告,第一次没找到,重新查找点击') self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() logger.info('选择的报账人工号为 : {}'.format(empNo)) logger.info('选择的报账人名称为 : {}'.format(empName)) self.click(*(By.XPATH, '/html/body//div[3]/span/button[2]'))
def runTimer(self): if self._timerType == '共享中心': sleep(1) self._timerManage.input_selectTimerName(self._timerName) sleep(1) self._timerManage.click_selectButton() try: sleep(1) self._timerManage.click_sharingCenterTimer() except: logger.warning('重试点击共享中心定时器Tab页面') sleep(1) self._timerManage.click_sharingCenterTimer() try: sleep(1) self._timerManage.click_runTimer() except: sleep(1) self._timerManage.click_runTimer() sleep(1) self._timerManage.back()
def selectAcceptContract(self, contractCode, contractName=''): self.click(*self._acceptContractId) WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located( (By.ID, 'undefined_contractCode'))) self.send_text(contractCode, *(By.ID, 'undefined_contractCode')) self.send_text(contractName, *(By.ID, 'undefined_contractName')) self.click(*(By.XPATH, '/html/body//form/div[3]/div/button[1]')) sleep(1) try: self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() except: logger.warning('警告,第一次没找到,重新查找点击') self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() logger.info('选择的合同编码为 : {}'.format(contractCode)) logger.info('选择的合同名称为 : {}'.format(contractName)) self.click(*(By.XPATH, '/html/body//div[3]/span/button[2]'))
def selectCurrency(self, currencyCode, currencyName=''): self.click(*self._currencyId) WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located( (By.ID, 'undefined_CURRENCY_CODE'))) self.send_text(currencyCode, *(By.ID, 'undefined_CURRENCY_CODE')) self.send_text(currencyName, *(By.ID, 'undefined_NAME')) self.click(*(By.XPATH, '/html/body//form/div[3]/div/button[1]')) try: targetAttribute = self.find_element( *(By.CLASS_NAME, 'el-table__row')).find_element( *(By.CLASS_NAME, 'el-checkbox')).get_attribute('class') except: sleep(1) targetAttribute = self.find_element( *(By.CLASS_NAME, 'el-table__row')).find_element( *(By.CLASS_NAME, 'el-checkbox')).get_attribute('class') if 'is-checked' not in targetAttribute: try: self.find_element(*(By.CLASS_NAME, 'el-table__row')).find_element( *(By.CLASS_NAME, 'el-checkbox')).click() except: logger.warning('选中失败,重新点击选中') self.find_element(*(By.CLASS_NAME, 'el-table__row')).find_element( *(By.CLASS_NAME, 'el-checkbox')).click() logger.info('选择币种编码 : {}'.format(currencyCode)) logger.info('选择币种名称 : {}'.format(currencyName)) self.click(*(By.XPATH, '/html/body//div[3]/span/button[2]')) else: logger.info('已经选择了币种编码 : {}'.format(currencyCode)) logger.info('已经选择了币种名称 : {}'.format(currencyName)) self.click(*(By.XPATH, '/html/body//div[3]/span/button[1]'))
def selectVendorName(self, vendorCode, vendorName=''): self.click(*self._vendorCode) WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located((By.ID, 'undefined_vendorCode'))) self.send_text(vendorCode, *(By.ID, 'undefined_vendorCode')) self.send_text(vendorName, *(By.ID, 'undefined_vendorName')) self.click(*(By.XPATH, '/html/body//form/div[3]/div/button[1]')) try: targetAttribute = self.find_element( *(By.CLASS_NAME, 'el-table__row')).find_element( *(By.CLASS_NAME, 'el-checkbox')).get_attribute('class') except: sleep(1) targetAttribute = self.find_element( *(By.CLASS_NAME, 'el-table__row')).find_element( *(By.CLASS_NAME, 'el-checkbox')).get_attribute('class') if 'is-checked' not in targetAttribute: try: self.find_element(*(By.CLASS_NAME, 'el-table__row')).find_element( *(By.CLASS_NAME, 'el-checkbox')).click() except: logger.warning('选中失败,重新点击选中') self.find_element(*(By.CLASS_NAME, 'el-table__row')).find_element( *(By.CLASS_NAME, 'el-checkbox')).click() logger.info('选择客商编码为 : {}'.format(vendorCode)) logger.info('选择客商名称为 : {}'.format(vendorName)) self.click(*(By.XPATH, '/html/body//div[3]/span/button[2]')) else: logger.info('已经选择了客商编码为 : {}'.format(vendorCode)) logger.info('已经选择了客商名称为 : {}'.format(vendorName)) self.click(*(By.XPATH, '/html/body//div[3]/span/button[1]'))
def __selectPreEndorse(self, name): """ describe: form表单选择往来方 :param name: 往来方名字 :return: None """ self.click(*(By.ID, 'form_preEndorseId')) WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located((By.ID, 'undefined_NAME'))) self.send_text(name, *(By.ID, 'undefined_NAME')) self.click(*(By.XPATH, '/html/body//form/div[2]/div/button[1]')) sleep(1) try: self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() except: logger.warning('警告,第一次没找到,重新查找点击') self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() logger.info('选择的供应商名称为 : {}'.format(name)) self.click(*(By.XPATH, '/html/body//div//span/button[2]'))
def associateBill(self, postalOrderCode): """ describe: 关联票据 :param postalOrderCode: 汇票编码 :return: None """ self.clickTargetButton('关联票据') WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located((By.ID, 'itempostalOrderCode'))) self.send_text(postalOrderCode, *(By.ID, 'itempostalOrderCode')) self.click(*(By.XPATH, '/html/body//form/div[8]/div/button[1]')) sleep(1) try: self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() except: logger.warning('警告,第一次没找到,重新查找点击') self.find_elements(*(By.CLASS_NAME, 'el-table__row'))[ len(self.find_elements(*(By.CLASS_NAME, 'el-table__row'))) - 1].click() logger.info('选择的汇票编码为 : {}'.format(postalOrderCode)) self.click(*(By.XPATH, '/html/body//div//span/button[2]'))