From 3b84cce1ee43215b9f398148fda19f4b1025856b Mon Sep 17 00:00:00 2001 From: yj <2077506045@qq.com> Date: 星期三, 24 七月 2024 17:46:00 +0800 Subject: [PATCH] 测评系统自动测试 --- po/maq_answer_page.py | 175 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 144 insertions(+), 31 deletions(-) diff --git a/po/maq_answer_page.py b/po/maq_answer_page.py index d95deb6..d5993bb 100644 --- a/po/maq_answer_page.py +++ b/po/maq_answer_page.py @@ -1,25 +1,126 @@ import random from base.base_page import BasePage -from elements.maq_answer_elements import MAQAnswerElements as Answer +from elements.maq_answer_elements import MAQAnswerElements from selenium.common.exceptions import * - import time +import re class MAQAnswerPage(BasePage): """ 绛旈椤甸潰 """ + loading_count = 0 + elements = MAQAnswerElements + + tip_timing = 35 + + def exercise_answer(self): + # 鑾峰彇鍒伴鐩� + time.sleep(3) + title = self.get_ele(self.elements.q_title, 5) + # 鎴彇宸茬瓟鏁伴噺涓庢�绘暟閲� + match = re.search(r"(\d+)/(\d+)", title.text) + current = int(match.group(1)) + total = int(match.group(2)) + + while current <= total: + # 鑾峰彇鍒版墍鏈夐�夐」 + options = self.get_eles(self.elements.options, 5) + number = random.randint(0, 5) + if options[number].is_enabled(): + options[number].click() + current += 1 + continue + time.sleep(3) + # 鐐瑰嚮鎻愪氦鎸夐挳 + self.click(self.elements.exercise_submit_btn, 10) + def answer(self): + # 鑾峰彇鍒伴鐩� + time.sleep(3) + title = self.get_ele(self.elements.q_title, 5) + # 鎴彇宸茬瓟鏁伴噺涓庢�绘暟閲� + match = re.search(r"(\d+)/(\d+)", title.text) + current = int(match.group(1)) + total = int(match.group(2)) + + while current <= total: + print(f"\n鐜板湪鏄疢AQ绗瑊current}棰�") + # 瑙﹀彂浜嬩腑 + if current == self.tip_timing: + time.sleep(5) + self.click(self.elements.continue_testing_btn, 10) + + # 鑾峰彇鍒版墍鏈夐�夐」 + options = self.get_eles(self.elements.options, 5) + number = random.randint(0, 5) + if options[number].is_enabled(): + options[number].click() + current += 1 + continue + + time.sleep(3) + # 鐐瑰嚮鎻愪氦鎸夐挳 + self.click(self.elements.submit_btn, 10) + # while True: + # # 鑾峰彇鍒版墍鏈夐�夐」 + # options = self.get_eles(self.se.options) + # if len(options) < 6: + # continue + # number = random.randint(0, 5) + # if options[number].is_enabled(): + # # 鑾峰彇鍒伴鐩� + # q_title = self.get_ele(self.se.q_title).text + # # q_title涓巕uestion_title涓嶇浉鍚屽垯鍐欏叆question涓� + # # 閬嶅巻瀛楀吀 + # # if question: + # # for key in question.keys(): + # # q_title = self.get_ele(self.se.q_title).text + # # if question[key]["title"] in q_title and "answer" not in question[key]: + # # question[key]["answer"] = number + 1 + # # question_title = q_title + # # break + # options[number].click() + # + # # 鎻愪氦鎸夐挳瀛樺湪鍒欑偣鍑� + # if self.submit_btn_is_display(): + # self.click(self.se.submit_btn) + # # 鏁版嵁鏄惁涓婁紶瀹屾垚 + # time.sleep(15) + # if self.upload_is_success(): + # if hint: + # return flag + # return True + # # 鏄惁缃戠粶寮傚父 + # try: + # self.get_ele(self.se.network_exception_title) + # return "缃戠粶寮傚父" + # except NoSuchElementException: + # pass + # return False + + def answer2(self, hint=None, question: dict = None): + flag = False # 鏆傚仠3绉� time.sleep(3) + # 鐐瑰嚮寮�濮嬬瓟棰� + question_title = None while True: + # time.sleep(0.5) # 缁х画娴嬭瘯鎸夐挳鍑虹幇鍒欑偣鍑� if self.continue_btn_is_display(): - self.click(Answer.continue_testing_btn) + # 鍒ゆ柇hint鏄惁鏈夊唴瀹� + if hint: + # 鑾峰彇鎻愮ず璇唴瀹� + hint_text = self.get_ele(self.elements.hint_text).text + # 鍒ゆ柇鎻愮ず璇唴瀹规槸鍚﹀寘鍚紶鍏ョ殑hint + if hint in hint_text: + flag = True + self.click(self.elements.continue_testing_btn) # 鏍囬涓嶅瓨鍦ㄧ洿鎺ヨ繑鍥濬alse if not self.title_is_display(): @@ -27,22 +128,41 @@ try: # 鑾峰彇鍒版墍鏈夐�夐」 - options = self.get_elements(Answer.options) + options = self.get_eles(self.elements.options) if len(options) < 6: continue number = random.randint(0, 5) if options[number].is_enabled(): + # 鑾峰彇鍒伴鐩� + # q_title = self.get_ele(self.se.q_title).text + # q_title涓巕uestion_title涓嶇浉鍚屽垯鍐欏叆question涓� + # 閬嶅巻瀛楀吀 + # if question: + # for key in question.keys(): + # q_title = self.get_ele(self.se.q_title).text + # if question[key]["title"] in q_title and "answer" not in question[key]: + # question[key]["answer"] = number + 1 + # question_title = q_title + # break options[number].click() except: pass # 鎻愪氦鎸夐挳瀛樺湪鍒欑偣鍑� if self.submit_btn_is_display(): - self.click(Answer.submit_btn) + self.click(self.elements.submit_btn) # 鏁版嵁鏄惁涓婁紶瀹屾垚 time.sleep(15) if self.upload_is_success(): + if hint: + return flag return True + # 鏄惁缃戠粶寮傚父 + try: + self.get_ele(self.elements.network_exception_title) + return "缃戠粶寮傚父" + except NoSuchElementException: + pass return False def upload_is_success(self): @@ -53,7 +173,7 @@ i = 0 while i < 60: try: - self.get_element_wait(Answer.upload_success_title) + self.get_ele(self.elements.upload_success_title, timeout=5) return True except TimeoutException: i += 1 @@ -66,7 +186,7 @@ :return: """ try: - button = self.get_element(Answer.submit_btn) + button = self.get_ele(self.elements.submit_btn) if button.is_enabled(): return True else: @@ -81,7 +201,7 @@ """ try: # 鐐瑰嚮缁х画娴嬭瘯鎸夐挳 - button = self.get_element(Answer.continue_testing_btn) + button = self.get_ele(self.elements.continue_testing_btn) if button.is_enabled(): return True else: @@ -96,30 +216,23 @@ """ try: # 鑾峰彇鏍囬 - self.get_element_wait(Answer.title) + self.get_ele(self.elements.title, timeout=10) return True except TimeoutException: return False - def loadin_text(self): - """ - 鍒ゆ柇鍔犺浇妗嗗姞杞斤紝濡傛灉鍔犺浇瓒呰繃10绉掔洿鎺ラ��鍑哄綋鍓嶆祴璇� - :return: - """ - i = 0 - while i < 10: - try: - self.get_element(Answer.loading_text) - i += 1 - time.sleep(1) - except: - return False - else: - return True - - def start_btn(self): - """ - 寮�濮嬫祴璇曟寜閽� - :return: - """ - self.click_wait(Answer.start_btn) + # def loadin_text(self): + # """ + # 鍒ゆ柇鍔犺浇妗嗗姞杞斤紝濡傛灉鍔犺浇瓒呰繃10绉掔洿鎺ラ��鍑哄綋鍓嶆祴璇� + # :return: + # """ + # i = 0 + # while i < 10: + # try: + # self.oper_elem("") + # i += 1 + # time.sleep(1) + # except: + # return False + # else: + # return True -- Gitblit v1.9.1