From c0dc1bc9676d0bc15355cfd16e9bb92a31518aa8 Mon Sep 17 00:00:00 2001
From: yj <2077506045@qq.com>
Date: 星期四, 25 七月 2024 11:50:11 +0800
Subject: [PATCH] 测评系统自动测试

---
 po/maq_answer_page.py |  177 ++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 145 insertions(+), 32 deletions(-)

diff --git a/po/maq_answer_page.py b/po/maq_answer_page.py
index f2e5bac..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
 
-    def answer_MAQ(self):
+    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