def common_resource_pool_source(cls, driver, data): pool_source_select_ele = Service.get_ele( driver, By.CSS_SELECTOR, "#content > div.row.con-margin.con-body-header > " "div.col-lg-6.col-md-6.col-xs-12.con-body-padding > " "select:nth-child(3)") Service.get_select_result(pool_source_select_ele, data)
def class_ele(cls, driver, data): class_select_ele = Service.get_ele( driver, By.CSS_SELECTOR, "#stuInfo > div.col-lg-6.col-md-4.col-xs-12.con-body-padding.text-left > " "select.sel-text.stu-class") Service.get_select_result(class_select_ele, data)
def test_add_source(self, marketing_query_info): # 点击新增 Service.get_ele_location_method( self.driver, 'css', '#queryDiv > div:nth-child(2) > button:nth-child(9)').click() # 调用新增操作 Marketing.marketing_add(self.driver, marketing_query_info) # 判断出现保存成功框 commit_window_ele = Service.is_Element_present( self.driver, By.CSS_SELECTOR, "body > div.bootbox.modal.fade.mydialog.in > " "div > div > div.modal-footer > button") if commit_window_ele: actual = "add-customer-success" commit_window_ele.click() else: actual = "add-customer-fail" # 预期不符,截图 if actual != marketing_query_info["expect"]: file_name = "add_error" + Service.format_date() + '.png' self.driver.get_screenshot_as_file( "C:\\Users\wang\Desktop\woniuboss4.0\gui\error\\'%s'" % (file_name)) # 断言 self.assertEqual(actual, marketing_query_info["expect"])
def name_input_query(cls, driver, data): name_input_query_ele = Service.get_ele( driver, By.CSS_SELECTOR, "#stuInfo > div.col-lg-6.col-md-6.col-xs-12.con-body-padding.text-left > " "input.text") Service.input_value_ele(name_input_query_ele, data)
def direction_ele(cls, driver, data): direction_select_ele = Service.get_ele( driver, By.CSS_SELECTOR, "#stuInfo > div.col-lg-6.col-md-4.col-xs-12.con-body-padding.text-left > " "select.sel-text.stu-orientation") Service.get_select_result(direction_select_ele, data)
def test_modify_employee(self, modify_info): PersonnelManagement.query_employee(self.driver, modify_info) time.sleep(3) query_count = Service.search_recode_result( self.driver, page_data["test_query_employee"]["locate_mode"], page_data["test_query_employee"]["locate_msg"], page_data["test_query_employee"]["result_locate_mode"], page_data["test_query_employee"]["result_locate_msg"]) # 调用 修改 Service.modify_person(self.driver, query_count, page_data["test_query_employee"]["body_id"], page_data["test_query_employee"]["table_id"]) PersonnelManagement.modify_employee(self.driver) # 保存后,确定 弹窗 try: modify_reuslt_ele = Service.get_ele_location_method( self.driver, page_data["test_modify_employee"]["modify_reuslt_ele_locate"], page_data["test_modify_employee"]["modify_reuslt_ele_msg"]) if modify_reuslt_ele.is_displayed(): actual = "modify_employee-success" modify_reuslt_ele.click() else: actual = "modify_employee-fail" self.assertEqual(actual, modify_info["expect"]) except: self.driver.get_screenshot_as_file( page_data["test_modify_employee"]["screen_path"])
def student_number_input_query(cls, driver, data): student_number_input_query_ele = Service.get_ele( driver, By.CSS_SELECTOR, "#stuInfo > div.col-lg-6.col-md-6.col-xs-12.con-body-padding.text-left > " "input[type=text]:nth-child(2)") Service.input_value_ele(student_number_input_query_ele, data)
def today_morning_input_name(cls, driver, data): morning_input_name_ele = Service.get_ele( driver, By.CSS_SELECTOR, "#mornExam > " "div.col-lg-8.col-md-8.col-xs-12.con-body-padding.text-left > input" ) # 值 Service.input_value_ele(morning_input_name_ele, data)
def Person_name(cls, driver, data): name_input_ele = Service.get_ele( driver, By.CSS_SELECTOR, "#content > div.row.con-margin.con-body-con > " "div.col-lg-12.col-md-12.col-xs-12.con-body-padding.text-left > " "input[type=text]") Service.input_value_ele(name_input_ele, data)
def test_students_vacate_add(self, add_info): # 新增按钮 Service.get_ele_location_method(self.driver, 'css', "#content > div.row.con-margin.con-body-con > div > div > div > " "div.col-lg-12.col-md-12.col-xs-12.con-body-padding.text-left > div > button").click() # 新增操作 StudentsVacate.students_vacate_add(self.driver, add_info) # 数据库数据量查询 sql_result = Utility.get_connect_one( "select count(student_id) from student_leave", students_vacate_page_data["test_students_vacate_query"]["sql_bath"] )[0] # 新增操作 # StudentsVacate.students_vacate_add(self.driver, add_info) # 数据库数据量查询 sql_result_again = Utility.get_connect_one( "select count(student_id) from student_leave", students_vacate_page_data["test_students_vacate_query"]["sql_bath"] )[0] # 断言 if sql_result < sql_result_again: actual = "add-students-vacate-success" else: actual = "add-students-vacate-fail" # 预期不符,截图 Service.get_screen(self.driver, actual, add_info["expect"], "/query_students_vacate", "C:/Users/wang/Desktop/woniuboss4.0/gui/error") self.assertEqual(actual, add_info["expect"])
def Person_status(cls, driver, data): status_selector_ele = Service.get_ele( driver, By.CSS_SELECTOR, "#content > div.row.con-margin.con-body-con > " "div.col-lg-12.col-md-12.col-xs-12.con-body-padding.text-left > " "select.emp_status.sel-text") Service.get_select_result(status_selector_ele, data)
def test_class_manager_add(self, add_info): # 新增按钮 Service.get_ele_location_method( self.driver, "xpath", "//*[@id='cmDiv']/div[1]/button").click() # 调用新增班级 ClassManager.class_manager_add(self.driver, add_info) true_window_ele = Service.is_Element_present( self.driver, By.CSS_SELECTOR, "body > div.bootbox.modal.fade.mydialog.in > div > div > div.modal-footer > button" ) if true_window_ele: actual = "add-class-success" true_window_ele.click() else: actual = "add-class-fail" # 预期不符,截图 Service.get_screen(self.driver, actual, add_info["expect"], "/add_class", "C:/Users/wang/Desktop/woniuboss4.0/gui/error") self.assertEqual(actual, add_info["expect"])
def test_class_manager_query(self, query_info): # 调用操作 ClassManager.class_manager_query(self.driver, query_info) # 当前条件,页面显示的数量 query_count = Service.search_recode_result( self.driver, class_manager_page_data["test_class_manager_query"]["locate_mode"], class_manager_page_data["test_class_manager_query"]["locate_msg"], class_manager_page_data["test_class_manager_query"] ["result_locate_mode"], class_manager_page_data["test_class_manager_query"] ["result_locate_msg"]) # 数据库对比 sql_result_again = Service.class_manager_query_sql( query_info, class_manager_page_data["test_class_manager_query"]["sql_bath"]) if sql_result_again == int(query_count): actual = "query-class-success" else: actual = "query-class-fail" # 预期不符,截图 Service.get_screen(self.driver, actual, query_info["expect"], "/query_class", "C:/Users/wang/Desktop/woniuboss4.0/gui/error") self.assertEqual(actual, query_info["expect"])
def input_name(cls, driver, data): input_name_ele = Service.get_ele( driver, By.CSS_SELECTOR, "#cmDiv > div.col-lg-8.col-md-8.col-sm-12.col-xs-12.con-body-padding.text-left" " > input[type=text]") # 值 Service.input_value_ele(input_name_ele, data)
def add_curriculum(cls, driver, time_info, data_list): Service.get_ele( driver, By.CSS_SELECTOR, "#course > div.col-lg-12.col-md-12.col-sm-12.col-xs-12.con-body-padding.text-left > " "button").click() # 安排课程 CourseArrangement.input_time(driver, time_info) CourseArrangement.teacher_cource(driver, data_list)
def modify_course(cls, driver, modify_data): CourseArrangement.teacher_ele(driver, modify_data["singleteacher"]) CourseArrangement.modify_function_ele(driver, modify_data["singledirection"], modify_data["singlenumber"]) # 保存 Service.get_ele( driver, By.CSS_SELECTOR, "#modifyCourse > div > div > div.modal-footer > button").click()
def staged_evaluation_query(cls, driver, query_info): StagedEvaluation.staged_class_ele(driver, query_info["class"]) StagedEvaluation.staged_direction_ele(driver, query_info["direction"]) StagedEvaluation.staged_name_input(driver, query_info["name"]) # 查询按钮 元素 Service.get_ele( driver, By.CSS_SELECTOR, "#examination > " "div.col-lg-8.col-md-8.col-sm-12.col-xs-12.con-body-padding.text-left > button" ).click()
def setUp(self): self.driver = webdriver.Firefox() self.driver.maximize_window() self.driver.implicitly_wait(10) self.url = Utility.read_json("../../config/data_base")["BASEURL"] # 跳转到报表中心 Service.add_cookie(self.driver, self.url) # 点击报表中心 Service.get_ele(self.driver, By.PARTIAL_LINK_TEXT, "报表中心")
def verification_allocating_result(cls, driver): # 判断自身、区域有无数据 query_result_submit = Service.get_ele(driver, By.CSS_SELECTOR, "table#allot-table tbody").text if query_result_submit != "无符合条件的记录": # 前端页面显示数据数,根据状态(不同状态数量不同) query_count_result = Service.get_ele(driver, By.XPATH, "//span[@class='pagination-info']").text result = re.match('^显示.*,总.*?(\d+)', query_count_result).group(1) else: result = 0 return result
def staged_evaluation_query(cls, driver, query_info): EvaluationRecords.records_class_ele(driver, query_info["class"]) EvaluationRecords.records_direction_ele(driver, query_info["direction"]) EvaluationRecords.records_stage_ele(driver, query_info["stage"]) EvaluationRecords.records_name_input(driver, query_info["name"]) # 查询按钮 元素 Service.get_ele( driver, By.CSS_SELECTOR, "#stagetest > div.col-lg-12.col-md-12.col-sm-12.col-xs-12.con-body-padding.text-left > button" ).click()
def setUp(self): self.driver = Service.get_driver() # # 跳转 班务管理 Service.jump_target_module( self.driver, students_vacate_page_data["setUp"]["url_path"], students_vacate_page_data["setUp"]["cookie_path"], students_vacate_page_data["setUp"]["locate_mode"], students_vacate_page_data["setUp"]["locate_msg"] ) # 学员请假 Service.get_ele_location_method(self.driver, students_vacate_page_data["setUp"]["resource_locate"], students_vacate_page_data["setUp"]["resource_locate_msg"]).click()
def teacher_cource(cls, driver, data_list): # teacher_cource_count = Service.get_eles(driver,By.CSS_SELECTOR,"tbody#addCourse-table > tr") # 循环写入老师排课内容 # addCourse-table > tr:nth-child(9) for count in range(len(data_list)): CourseArrangement.teacher_cource_info(driver, data_list[count], count + 1) Service.get_ele( driver, By.CSS_SELECTOR, "#course-add > div > div > div.modal-footer > button:nth-child(2)" ).click()
def verification_evaluation_records_result(self): # 判断自身、区域有无数据 query_result_class = Service.get_ele(self.driver, By.CSS_SELECTOR, "table#pe-result tbody").text if query_result_class != "无符合条件的记录": # 前端页面显示数据数,根据状态(不同状态数量不同) query_count_result = Service.get_ele( self.driver, By.CSS_SELECTOR, "#stagetest > div.bootstrap-table > div.fixed-table-container > div.fixed-table-pagination > " "div.pull-left.pagination-detail > span.pagination-info").text result = re.match('^显示.*,总.*?(\d+)', query_count_result).group(1) else: result = 0 return result
def common_resource_pool_query(cls, driver, query_info): # 元素 CommonResourcePool.finally_abandoned_people(driver, query_info["people"]) CommonResourcePool.common_resource_pool_status(driver, query_info["status"]) CommonResourcePool.common_resource_pool_source(driver, query_info["source"]) CommonResourcePool.common_resource_pool_input_query( driver, query_info["userinfo"]) # 点击查询 Service.get_ele(driver, By.CSS_SELECTOR, "button.btn:nth-child(2)").click()
def verification_modify_result(self, modify_ele, modif_path, expect): Service.get_tier_ele(modify_ele, By.XPATH, modif_path).click() # 姓名框 modify_name_ele = Service.get_ele( self.driver, By.CSS_SELECTOR, "#modifyForm > div > div:nth-child(2) > div.col-md-8.col-sm-6.col-xs-6 > " "div.col-md-6.col-sm-8.col-xs-8.form-group > input") # 在姓名后输入日期 current_time = Service.format_date() current_content = Service.input_value_date_ele(modify_name_ele, current_time) # 点击 保存 Service.get_ele( self.driver, By.CSS_SELECTOR, "#form-modify > div > div > div.modal-footer > button").click() # 修改完成,用修改后的姓名,查询一次 TraineesManagement.name_input_query(self.driver, current_content) TraineesManagement.basic_information_query_ele(self.driver) if Service.get_ele(self.driver, By.CSS_SELECTOR, "#stuInfo_table > tbody > tr > td:nth-child(1)" ).text == current_content: actual = "basic-pass" else: actual = "basic-fail" self.assertEqual(actual, expect)
def verification_check_result(self, check_ele, check_path): Service.get_tier_ele(check_ele, By.CSS_SELECTOR, check_path).click() # 判断 查看功能 if Service.is_Element_present(self.driver, By.CSS_SELECTOR, "#seeStuInfo-modal > div > div"): # 关闭页面 Service.get_ele( self.driver, By.CSS_SELECTOR, "#seeStuInfo-modal > div > div > div.modal-header > button > span:nth-child(1)" ).click() else: print("查看功能出错") self.driver.quit()
def verification_morning_exam_result(self, driver): # 判断自身、区域有无数据 query_result_morning = Service.get_ele(driver, By.CSS_SELECTOR, "#mornExam-table > tbody").text if query_result_morning != "无符合条件的记录": # 前端页面显示数据数,根据状态(不同状态数量不同) query_count_result = Service.get_ele( driver, By.CSS_SELECTOR, "#mornExam > div.bootstrap-table > div.fixed-table-container > " "div.fixed-table-pagination > div.pull-left.pagination-detail > span.pagination-info" ).text result = re.match('^显示.*,总.*?(\d+)', query_count_result).group(1) else: result = 0 return result
def test_course_arrangement(self, time_info, course_arrangement_test_info, modify_data, expect): # cookie self.course_arrangement_init() # 调用新增排课 操作 CourseArrangement.add_curriculum(self.driver, time_info, course_arrangement_test_info) # 调用修改排课 CourseArrangement.modify_course(self.driver, modify_data) # 修改后,判断修改是否成功过 class_number = Service.get_ele( self.driver, By.CSS_SELECTOR, "#course_table > tbody > tr:nth-child(1) > td:nth-child(4)").text if class_number == modify_data["singlenumber"]: actual = "modify-pass" else: actual = "modify-fail" # 断言 self.assertEqual(actual, expect) self.driver.quit()
def login(cls, driver, url, login_info): driver.get(url) # 数据 uname_ele = Service.get_ele( driver, By.CSS_SELECTOR, "div.row:nth-child(1) > input:nth-child(1)") Service.input_value_ele(uname_ele, login_info["uname"]) upass_ele = Service.get_ele( driver, By.CSS_SELECTOR, "div.row:nth-child(2) > input:nth-child(1)") Service.input_value_ele(upass_ele, login_info["upass"]) verify_code_ele = Service.get_ele(driver, By.CSS_SELECTOR, "input.col-md-6") Service.input_value_ele(verify_code_ele, login_info["verifycode"]) # 点击登录 login_ele = Service.get_ele(driver, By.CSS_SELECTOR, ".btn") login_ele.click()
def test_query_employee(self, query_info): PersonnelManagement.query_employee(self.driver, query_info) query_count = Service.search_recode_result( self.driver, page_data["test_query_employee"]["locate_mode"], page_data["test_query_employee"]["locate_msg"], page_data["test_query_employee"]["result_locate_mode"], page_data["test_query_employee"]["result_locate_msg"]) # 数据库对比 sql_result = Service.person_query_sql( query_info, page_data["test_query_employee"]["sql_bath"]) if int(query_count) == int(sql_result): actual = "query_employee-success" else: actual = "query_employee-fail" print(query_count, sql_result) self.assertEqual(actual, query_info["expect"])