From 3b84cce1ee43215b9f398148fda19f4b1025856b Mon Sep 17 00:00:00 2001
From: yj <2077506045@qq.com>
Date: 星期三, 24 七月 2024 17:46:00 +0800
Subject: [PATCH] 测评系统自动测试

---
 po/caq_answer_page.py |   92 ++++++++++++++++++++++++---------------------
 1 files changed, 49 insertions(+), 43 deletions(-)

diff --git a/po/caq_answer_page.py b/po/caq_answer_page.py
index 2816cf5..7504f42 100644
--- a/po/caq_answer_page.py
+++ b/po/caq_answer_page.py
@@ -5,6 +5,7 @@
 from selenium.common.exceptions import *
 
 import time
+import re
 
 
 class CAQAnswerPage(BasePage):
@@ -13,57 +14,62 @@
     """
     loading_count = 0
 
-    es = CAQAnswerElements
+    elements = CAQAnswerElements
 
     def answer(self):
-        # 鐐瑰嚮寮�濮嬫寜閽�
-        self.click(self.es.start_btn, timeout=10)
         # 鏆傚仠3绉�
         time.sleep(3)
-        i = 0
-        while i < 27:
-            if i == 0:
-                self.click(self.es.continue_testing_btn, timeout=10)
-            elif i < 4:
-                # 鑾峰彇鍒版墍鏈夐�夐」
-                options_1 = self.elements_is_visibility(self.es.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:
+            # 鑾峰彇鎵�鏈夐鐩�
+            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(self.es.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(self.es.options_3)
-                self.click_element_js(options_3[number])
+        # 鐐瑰嚮缁х画娴嬭瘯
+        self.click(self.elements.continue_testing_btn, 5)
 
-                options_4 = self.elements_is_visibility(self.es.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(self.es.options_5)
-                self.click_element_js(options_5[number])
-
-                self.click_js(self.es.next_btn)
-            if i == 4:
-                self.click(self.es.continue_testing_btn, timeout=10)
-
-            # # 鏍囬涓嶅瓨鍦ㄧ洿鎺ヨ繑鍥濬alse
-            # if not self.title_is_display():
-            #     return False
-
-            if 4 < i < 26:
-                options_6 = self.elements_is_visibility(self.es.options_6)
-                number = random.randint(0, 4)
-                self.click_element_js(options_6[number])
-                if i == 23:
-                    self.click_js(self.es.submit_btn)
-                    # 鏁版嵁鏄惁涓婁紶瀹屾垚
-                    time.sleep(15)
-                    if self.upload_is_success():
-                        return True
-                else:
-
-                    self.click_js(self.es.next_btn)
-            i += 1
+        while current <= total:
+            # 鑾峰彇鍒版墍鏈夐�夐」
+            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):
         """
@@ -73,7 +79,7 @@
         i = 0
         while i < 60:
             try:
-                self.get_element_wait(self.es.upload_success_title)
+                self.get_element_wait(self.elements.upload_success_title)
                 return True
             except TimeoutException:
                 i += 1

--
Gitblit v1.9.1