From 204169e8cae389613ea35c4ec3a0c89998679e70 Mon Sep 17 00:00:00 2001 From: yj <2077506045@qq.com> Date: 星期四, 25 七月 2024 11:19:42 +0800 Subject: [PATCH] 测评系统自动测试 --- po/caq_answer_page.py | 104 +++++++++++++++++++++++++++++----------------------- 1 files changed, 58 insertions(+), 46 deletions(-) diff --git a/po/caq_answer_page.py b/po/caq_answer_page.py index 73dcc4b..a5aa503 100644 --- a/po/caq_answer_page.py +++ b/po/caq_answer_page.py @@ -1,10 +1,11 @@ import random from base.base_page import BasePage -from elements.caq_answer_elements import CAQAnswerElements as Answer +from elements.caq_answer_elements import CAQAnswerElements from selenium.common.exceptions import * import time +import re class CAQAnswerPage(BasePage): @@ -13,53 +14,64 @@ """ loading_count = 0 + elements = CAQAnswerElements + def answer(self): # 鏆傚仠3绉� time.sleep(3) - i = 0 - while i < 27: - if i == 0: - self.click_wait(Answer.continue_testing_btn) - elif i < 4: - # 鑾峰彇鍒版墍鏈夐�夐」 - options_1 = self.elements_is_visibility(Answer.options_1) + # 鐐瑰嚮缁х画娴嬭瘯 + self.click(self.elements.continue_testing_btn, 5) + + 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鍒嗙墖1绗瑊current}棰�") + # 鑾峰彇鎵�鏈夐鐩� + questions = self.get_eles(self.elements.questions, 5) + for question in questions: + options = self.get_elements_in(question, self.elements.options) number = random.randint(0, 4) - self.click_element_js(options_1[number]) + options[number].click() - options_2 = self.elements_is_visibility(Answer.options_2) - self.click_element_js(options_2[number]) + if current == 1: + self.click(self.elements.btn) + else: + self.click(self.elements.next_btn) + current += 1 + if current <= total: + time.sleep(1) + # 灏嗛〉闈㈡粦鍔ㄥ埌鏈�椤堕儴 + self.click(self.elements.scroll_top_btn, 5) + time.sleep(2) + time.sleep(2) - options_3 = self.elements_is_visibility(Answer.options_3) - self.click_element_js(options_3[number]) + # 鐐瑰嚮缁х画娴嬭瘯 + self.click(self.elements.continue_testing_btn, 5) - options_4 = self.elements_is_visibility(Answer.options_4) - self.click_element_js(options_4[number]) + title = self.get_ele(self.elements.q_title_2, 5) + # 鎴彇宸茬瓟鏁伴噺涓庢�绘暟閲� + match = re.search(r"(\d+)/(\d+)", title.text) + current = int(match.group(1)) + total = int(match.group(2)) - options_5 = self.elements_is_visibility(Answer.options_5) - self.click_element_js(options_5[number]) - - self.click_js(Answer.next_btn) - if i == 4: - self.click_wait(Answer.continue_testing_btn) - - # # 鏍囬涓嶅瓨鍦ㄧ洿鎺ヨ繑鍥濬alse - # if not self.title_is_display(): - # return False - - if 4 < i < 26: - options_6 = self.elements_is_visibility(Answer.options_6) - number = random.randint(0, 4) - self.click_element_js(options_6[number]) - if i == 23: - self.click_js(Answer.submit_btn) - # 鏁版嵁鏄惁涓婁紶瀹屾垚 - time.sleep(15) - if self.upload_is_success(): - return True - else: - - self.click_js(Answer.next_btn) - i += 1 + while current <= total: + print(f"\n鐜板湪鏄疌AQ鍒嗙墖2绗瑊current}棰�") + # 鑾峰彇鍒版墍鏈夐�夐」 + options = self.get_eles(self.elements.options_2, 5) + number = random.randint(0, 4) + options[number].click() + if current == 1: + self.click(self.elements.btn) + else: + if current == total: + time.sleep(1) + self.click(self.elements.next_btn) + current += 1 def upload_is_success(self): """ @@ -69,7 +81,7 @@ i = 0 while i < 60: try: - self.get_element_wait(Answer.upload_success_title) + self.get_element_wait(self.elements.upload_success_title) return True except TimeoutException: i += 1 @@ -82,7 +94,7 @@ :return: """ try: - button = self.get_element(Answer.submit_btn) + button = self.get_ele(self.es.submit_btn) if button.is_enabled(): return True else: @@ -97,7 +109,7 @@ """ try: # 鐐瑰嚮缁х画娴嬭瘯鎸夐挳 - button = self.get_element(Answer.continue_testing_btn) + button = self.get_ele(self.es.continue_testing_btn) if button.is_enabled(): return True else: @@ -112,7 +124,7 @@ """ try: # 鑾峰彇鏍囬 - self.get_element_wait(Answer.title) + self.get_element_wait(self.es.title) return True except TimeoutException: return False @@ -125,7 +137,7 @@ i = 0 while i < 10: try: - self.get_element(Answer.loading_text) + self.get_element(self.es.loading_text) i += 1 time.sleep(1) except: @@ -138,4 +150,4 @@ 寮�濮嬫祴璇曟寜閽� :return: """ - self.click_wait(Answer.start_btn) + self.click_wait(self.es.start_btn) -- Gitblit v1.9.1