def select_manu(self, manu_name): logger.info("--- 选择生产企业:{} ---".format(manu_name)) # 点击生产企业选择框 self.find_element(loc.manu_loc).click() # 获取所有生产企业的名字 names = self.find_elements(loc.manu_name_loc) try: # 判断想选择的生产企业是否在列表中,存在时点击选择 for i in names: if i.text == manu_name: i.click() break logger.info("--- 选择生产企业后,点击确定 ---") # 选择生产企业后点击确定 self.find_element(loc.manu_yes_loc).click() try: # 判断是否有错误信息提示框 self.wait_ele_visible(loc.manu_msg_loc, visible=None) except: logger.exception("--- 提示信息:请选择生产企业 ---") raise else: logger.info("--- 选择生产企业成功 ---") except: logger.exception("--- 错误信息:选择的生产企业不存在 ---")
def select_bank_card(self, bank_card_id): logger.info("--- 点击收款账户输入框 ---") self.find_element(loc.bank_card_loc).click() # 获取所有收款账户的姓名 name = self.find_elements(loc.bank_card_name_loc) # 获取所有收款账户的银行卡 card = self.find_elements(loc.bank_card_id_loc) try: for i in range(len(card)): # 判断要选择的收款账户银行卡是否在列表中 logger.info("--- 查找收款银行卡号 : {} ---".format(bank_card_id)) if card[i].text == bank_card_id: logger.info("--- 查找收款银行卡号 : {} 成功---".format(bank_card_id)) self.find_element(loc.bank_card_select_button(i + 1)).click() logger.info("--- 查找收款账户成功 ---") break logger.info("--- 选择收款账户后点击确定 ---") self.find_element(loc.bank_card_yes_loc).click() try: # 判断有没有错误提示信息 self.wait_ele_visible(loc.bank_card_err_msg_loc, visible=None) except: logger.exception("--- 提示信息:请选择收款账户 ---") raise else: logger.info("--- 选择收款账户成功 ---") except: logger.exception("--- 选择的收款账户银行卡不存在 ---")
def select_linker(self, linker_name): logger.info("--- 选择采购经理人:{} ---".format(linker_name)) # 点击选择按钮 self.find_element(loc.linker_loc).click() # 获取所有采购经理人的名字 names = self.find_elements(loc.linker_name_loc) try: # 判断想选择的采购经理人是否在列表中,存在时点击选择 for i in names: if i.text == linker_name: i.click() break logger.info("--- 选择采购经理人后,点击确定 ---") self.find_element(loc.select_linker_yes_loc).click() try: # 判断是否有错误信息提示框 self.wait_ele_visible(loc.linker_msg_loc, visible=None) except: logger.exception("--- 提示信息:请选择采购经理人 ---") raise else: logger.info("--- 选择采购经理人成功 ---") except: logger.info("--- 错误信息:选择的采购经理人不存在 ---")
def select_linker(self, tel): logger.info("--- 点击采购经理人手机号输入框 ---") self.find_element(loc.linker_loc).click() # 获取所有采购经理人的手机号 tels = self.find_elements(loc.linker_tel_loc) # 判断要选择的采购经理人是否在列表中 try: for i in tels: if i.text == tel: i.click() logger.info("--- 选择采购经理人 : {} ---".format(tel)) break logger.info("--- 选择采购经理人后点击确定 ---") self.find_element(loc.linker_yes_loc).click() try: # 判断有没有错误提示信息 self.wait_ele_visible(loc.linker_err_msg_loc, visible=None) except: logger.exception("--- 提示信息:请选择采购经理人 ---") raise else: logger.info("--- 选择采购经理人成功 ---") except: logger.info("--- 错误信息:选择的采购经理人不存在 ---")
def wait_ele_visible(self, loc, visible=True): if visible: # visible为true时,执行元素是否可见的判断 logger.info("等待元素:{} 是否可见".format(loc)) try: wait = WebDriverWait(self.driver, 20, 0.5) wait.until(EC.visibility_of_element_located(loc)) sleep(1) except: logger.exception("等待元素:{} 可见失败,元素当前不可见".format(loc)) raise else: logger.info("等待元素:{} 可见成功,元素当前可见") else: # visible为false时,执行元素是否不可见的判断 logger.info("等待元素:{} 是否不可见".format(loc)) try: wait = WebDriverWait(self.driver, 20, 0.5) wait.until(EC.invisibility_of_element_located(loc)) sleep(1) except: logger.exception("等待元素:{} 不可见失败,元素当前可见".format(loc)) raise else: logger.info("等待元素:{} 不可见成功,元素当前不可见")
def find_elements(self, loc): # 先等待元素可见 self.wait_ele_visible(loc) logger.info("查找元素:{}".format(loc)) try: self.driver.find_element(*loc) return self.driver.find_elements(*loc) except: logger.exception("元素查找失败,找不到该元素,开始截取当前页面图像".format(loc)) self.save_screenshot() raise
def is_user_exist(self): # 判断账套信息是否存在 logger.info("--- 等待账套信息可见 ---") try: self.wait_ele_visible(loc.user_info_loc) except: logger.exception("--- 账套信息不可见 ---") return False else: logger.info("--- 账套信息可见 ---") return True
def select_kind(self, kind): logger.info("--- 选择采购类别:{} ---".format(kind)) # 获取所有采购类别的名字 kinds = self.find_elements(loc.kind_loc) try: # 判断想选择的采购类别是否在列表中,存在时点击选择 for i in kinds: if i.text == kind: i.click() break except: logger.exception("--- 错误信息:选择的采购类别不存在 ---")
def result(self, value): logger.info("--- 判断是否查询到结果 ---") # 定位到所有的查询结果 all_result = self.find_elements(loc.result_loc) try: # 判断查询条件是否显示在查询结果中 for i in all_result: if value == i.text: logger.info("--- 查询到结果 ---") return True except: logger.exception("--- 未查到结果 ---") return False
def test_02_select_order_by_order_id(self): logger.info("--- 输入订单编号查询 ---") # 点击供货管理--订单管理 self.hp.click_order() # 输入订单id self.op.input_order_id(rd["order_id"]) # 点击查询 self.op.click_select() # 断言 try: self.assertTrue(self.op.result(rd["order_id"])) logger.info("--- 断言成功 ---") except: logger.exception("--- 断言失败 ---")
def __init__(self, driver): self.driver = driver lp = LoginPage(self.driver) # 登录页 hp = HomePage(self.driver) # 首页 # 打开网址 lp.open_url(rd["url"]) # 登录页 lp.login_other_method(rd["user"], rd["password"]) # 判断登录是否成功 try: if hp.is_user_exist(): logger.info("--- 登录成功,进入首页 ---") except: logger.exception("--- 登录失败 ---")
def test_login_success(self): """成功登录流程""" # 手动输入验证码方式 self.lp.login_other_method(rd["user"], rd["password"]) # 识别图片验证码方式 # LoginPage(self.driver).login(rd["user"], rd["password"]) # 断言 try: self.assertTrue(self.hp.is_user_exist()) except: logger.exception("--- 断言:登录失败 ---") else: logger.info("--- 断言:登录成功 ---") # 点击账套信息 self.hp.click_user_info() # 点击退出按钮 self.hp.click_exit()