def teststeps(self): """ 执行测试步骤函数,主要用于执行读取的测试用例并进行会议模板模块功能测试操作 """ # 从全局存储中获取webdriver对象 wd = GSTORE['wd'] # 先清空Excel文件中的测试结果和日志截图 clear_columns_in_xlsx(xlsx_file_path, "会议审批", ["测试结果", "日志截图"]) # 读取Excel文件中的测试用例数据 ddt_cases = read_xlsx_data(xlsx_file_path, "会议审批") # 遍历 ddt_cases 并获取每一个 JSON 对象 for case in ddt_cases: # 为每个测试用例添加一个 name 字段 case_name = case.get('case_name', f"Case_{ddt_cases.index(case) + 1}") case['name'] = case_name # 创建审批会议 meeting_message("审批会议室", "普通会议", "审批测试会议","长安大学", wd) for step in case: print(f"当前步骤: {step}") # 先赋值 locator_type = get_by_enum(case.get('locator_type')) locator_value = case.get('locator_value') element_type = case.get('element_type') element_value = case.get('element_value') expented_result = case.get('expented_result') # 判断页面功能类型 if case.get("page") == "ApprovalInitiate": if element_type == "input": safe_send_keys((locator_type, locator_value), element_value, wd) sleep(1) elif element_type == "click": safe_click((locator_type, locator_value), wd) sleep(2) elif element_type == "getTips": notify_text = get_notify_text(wd, (locator_type, locator_value), "Message_Template", "Template_Edit", "长安审批测试") INFO(f"提示信息为:{notify_text}") CHECK_POINT("编辑测试判断是否正确", expented_result in notify_text) SELENIUM_LOG_SCREEN(wd, "50") elif element_type == "function": print(f"这是element_value的值:{element_value}") # 退出登录,并调用用户登录函数 safe_click((By.XPATH, "//img[@title='退出登录']"), wd) sleep(1) wd.refresh() user_login(element_value[0],element_value[1]) sleep(2) # 调用审批会议状态设置函数 approval_status_control("审批测试会议", element_value[2], wd) sleep(1) # 退出登录 safe_click((By.XPATH, "//img[@title='退出登录']"), wd) wd.refresh() # 登录与退出操作频繁,到登录页后存在一个缓存界面,可以点击退出按钮 quit_element = wd.find_element(By.XPATH, "//div[@class='operat']//span//img") if quit_element != "": quit_element.click() # 调用用户登录函数,登录普通用户 user_login("admin@PT","Ubains@4321") # 进入会议审批模块 safe_click((By.XPATH, "//span[contains(text(),'会议审批')]"), wd) sleep(1)