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