def common_resource_pool_init(self): # 添加cookie信息,跳转到登陆后首页 Service.add_cookie(self.driver, self.url, "../config/consulting_competent_data_cookie") # 点击市场营销,分配资源 Service.get_ele(self.driver, By.PARTIAL_LINK_TEXT, "培训资源").click() Service.get_ele(self.driver, By.PARTIAL_LINK_TEXT, "公共资源池").click()
def teacher_cource_info(cls, driver, count_data, count): # 状态 teacher_status = Service.get_ele( driver, By.CSS_SELECTOR, "#addCourse-table > tr:nth-child(%d) > td:nth-child(3) > " "select" % count) Service.get_select_result(teacher_status, count_data["status"]) # 教室 teacher_room = Service.get_ele( driver, By.CSS_SELECTOR, "#addCourse-table > tr:nth-child(%d) > td:nth-child(4) > " "select" % count) Service.get_select_result(teacher_room, count_data["room"]) # 班号 teacher_room_number = Service.get_ele( driver, By.CSS_SELECTOR, "#addCourse-table > tr:nth-child(%d) > td:nth-child(5) > " "select" % count) Service.get_select_result(teacher_room_number, count_data["number"]) # 方向 teacher_room_direction = Service.get_ele( driver, By.CSS_SELECTOR, "#addCourse-table > tr:nth-child(%d) > td:nth-child(6) > " "select" % count) Service.get_select_result(teacher_room_direction, count_data["direction"]) # 课程安排 teacher_source_plan = Service.get_ele( driver, By.CSS_SELECTOR, "#addCourse-table > tr:nth-child(%d) > td:nth-child(7) > " "select" % count) Service.get_select_result(teacher_source_plan, count_data["plan"])
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 data_input(cls, driver, start_data, end_data): start_data_input_ele = Service.get_ele(driver, By.ID, "date1") Service.input_value_ele(start_data_input_ele, start_data) end_data_input_ele = Service.get_ele(driver, By.ID, "date2") Service.input_value_ele(end_data_input_ele, end_data)
def grade_today_morning_exam(self, query_select, exam_info): # 判断是否晨考 if query_select.text == '-': # 弹窗 today_morning_way = Service.get_ele( self.driver, By.CSS_SELECTOR, "#mornExam-form > div > div:nth-child(1) > select") Service.get_select_result(today_morning_way, exam_info["way"]) today_morning_score = Service.get_ele( self.driver, By.CSS_SELECTOR, "#mornExam-form > div > div:nth-child(2) > input") Service.input_value_ele(today_morning_score, exam_info["score"]) today_morning_describe = Service.get_ele( self.driver, By.CSS_SELECTOR, "#mornExam-form > div > div.col-md-12.col-sm-12.col-xs-12.form-group > " "textarea") Service.input_value_ele(today_morning_describe, exam_info["describe"]) # 保存 Service.get_ele( self.driver, By.CSS_SELECTOR, "#mornExam-modal > div > div > div.modal-footer > button" ).click() # 用于判断是否是这里添加的评分 return True # 判断当前元素,分数,一致,则通过 # 评过分的略过 else: return False
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 input_time(cls, driver, data): start_time_ele = Service.get_ele( driver, By.CSS_SELECTOR, "#addcourse > div > div:nth-child(1) > input") end_time_ele = Service.get_ele( driver, By.CSS_SELECTOR, "#addcourse > div > div:nth-child(2) > input") # 值 Service.input_value_ele(start_time_ele, data["starttime"]) Service.input_value_ele(end_time_ele, data["endtime"])
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 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 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 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 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 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 modify_function_ele(cls, driver, modify_direction, modify_number): Service.get_ele( driver, By.CSS_SELECTOR, "#course_table > tbody > tr:nth-child(1) > td:nth-child(10) > button" ).click() modify_function_direction = Service.get_ele( driver, By.CSS_SELECTOR, "#modifyCourseForm > div > div > div:nth-child(5) > select") Service.get_select_result(modify_function_direction, modify_direction) modify_function_number = Service.get_ele( driver, By.CSS_SELECTOR, "#modifyCourseForm > div > div > div:nth-child(7) > select") Service.get_select_result(modify_function_number, modify_number)
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_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 test_marketing_query(self, marketing_query_info, expect): # 添加cookie信息,跳转到登陆后首页 Service.add_cookie(self.driver, self.url, "../config/data_cookie") # 点击市场营销 Service.get_ele(self.driver, By.PARTIAL_LINK_TEXT, "市场营销").click() Marketing.marketing_query(self.driver, marketing_query_info) # 判断是否查询出数据 query_result = Service.get_ele(self.driver, By.CSS_SELECTOR, "table#netCus-table tbody").text # 市场营销有上传过数据 if query_result != "无符合条件的记录": # 前端页面显示数据数,根据状态(不同状态数量不同) query_count_result = Service.get_ele( self.driver, By.XPATH, "//span[@class='pagination-info']").text result = re.match('^显示.*,总.*?(\d+)', query_count_result) # 查询数据库,对比数据条数是否正确 if marketing_query_info['status'] == "全部" and marketing_query_info[ 'area'] == "全部": sql = 'select count(customer_id) from customer where source="%s" and ' \ 'create_time between "%s" and "%s"'%('网络',marketing_query_info['starttime'],marketing_query_info['endtime']) query_connect_count = Utility.get_connect_one( sql, "../config/data_base") elif marketing_query_info[ 'status'] == "全部" and marketing_query_info['area'] != "全部": sql = 'select count(customer_id) from customer where source="%s" and region="%s" and create_time between "%s" and "%s"' \ %('网络',marketing_query_info['area'],marketing_query_info['starttime'],marketing_query_info['endtime']) query_connect_count = Utility.get_connect_one( sql, "../config/data_base") elif marketing_query_info[ 'status'] != "全部" and marketing_query_info['area'] == "全部": sql = 'select count(customer_id) from customer where source="%s" and last_status="%s" and create_time between "%s" and "%s"' \ % ('网络', marketing_query_info['status'],marketing_query_info['starttime'],marketing_query_info['endtime']) query_connect_count = Utility.get_connect_one( sql, "../config/data_base") else: sql = 'select count(customer_id) from customer where source="%s" and last_status="%s" and region="%s" and create_time between "%s" and "%s"' \ % ('网络', marketing_query_info['status'],marketing_query_info['area'],marketing_query_info['starttime'],marketing_query_info['endtime']) query_connect_count = Utility.get_connect_one( sql, "../config/data_base") if int(result.group(1)) == int(query_connect_count[0]): actual = 'query-pass' else: actual = 'query-fail' self.assertEqual(actual, expect) 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 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 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 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 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 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_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 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 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 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 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()