From ddf66cf155af3805323ec55ae6814f2d23d40c07 Mon Sep 17 00:00:00 2001
From: 阳洁 <2077506045@qq.com>
Date: 星期五, 28 七月 2023 18:42:30 +0800
Subject: [PATCH] 测评系统自动测试

---
 po/maq_answer_page.py |   89 +++++++++++++++++++++++++++++---------------
 1 files changed, 58 insertions(+), 31 deletions(-)

diff --git a/po/maq_answer_page.py b/po/maq_answer_page.py
index f2e5bac..fbf2696 100644
--- a/po/maq_answer_page.py
+++ b/po/maq_answer_page.py
@@ -1,7 +1,7 @@
 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
@@ -11,15 +11,30 @@
     """
     绛旈椤甸潰
     """
+
     loading_count = 0
 
-    def answer_MAQ(self):
+    se = MAQAnswerElements
+
+    def answer(self, hint=None, question: dict = None):
+        flag = False
         # 鏆傚仠3绉�
         time.sleep(3)
+        # 鐐瑰嚮寮�濮嬬瓟棰�
+        self.click(self.se.start_btn)
+        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.se.hint_text).text
+                    # 鍒ゆ柇鎻愮ず璇唴瀹规槸鍚﹀寘鍚紶鍏ョ殑hint
+                    if hint in hint_text:
+                        flag = True
+                self.click(self.se.continue_testing_btn)
 
             # 鏍囬涓嶅瓨鍦ㄧ洿鎺ヨ繑鍥濬alse
             if not self.title_is_display():
@@ -27,22 +42,41 @@
 
             try:
                 # 鑾峰彇鍒版墍鏈夐�夐」
-                options = self.get_elements(Answer.options)
+                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()
             except:
                 pass
 
             # 鎻愪氦鎸夐挳瀛樺湪鍒欑偣鍑�
             if self.submit_btn_is_display():
-                self.click(Answer.submit_btn)
+                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 upload_is_success(self):
@@ -53,7 +87,7 @@
         i = 0
         while i < 60:
             try:
-                self.get_element_wait(Answer.upload_success_title)
+                self.get_ele(self.se.upload_success_title, timeout=5)
                 return True
             except TimeoutException:
                 i += 1
@@ -66,7 +100,7 @@
         :return:
         """
         try:
-            button = self.get_element(Answer.submit_btn)
+            button = self.get_ele(self.se.submit_btn)
             if button.is_enabled():
                 return True
             else:
@@ -81,7 +115,7 @@
         """
         try:
             # 鐐瑰嚮缁х画娴嬭瘯鎸夐挳
-            button = self.get_element(Answer.continue_testing_btn)
+            button = self.get_ele(self.se.continue_testing_btn)
             if button.is_enabled():
                 return True
             else:
@@ -96,30 +130,23 @@
         """
         try:
             # 鑾峰彇鏍囬
-            self.get_element_wait(Answer.title)
+            self.get_ele(self.se.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