yj
2024-07-24 3b84cce1ee43215b9f398148fda19f4b1025856b
po/jaq_answer_page.py
@@ -1,10 +1,11 @@
import random
from base.base_page import BasePage
from elements.jaq_answer_elements import JAQAnswerElements as Answer
from elements.jaq_answer_elements import JAQAnswerElements
from selenium.common.exceptions import *
import time
import re
class JAQAnswerPage(BasePage):
@@ -13,38 +14,33 @@
    """
    loading_count = 0
    elements = JAQAnswerElements
    def answer(self):
        # 暂停3秒
        time.sleep(3)
        while True:
            # 标题不存在直接返回False
            if not self.title_is_display():
                return False
            try:
                # 获取到所有a选项
                options_a = self.get_elements(Answer.options_a)
                if len(options_a) < 5:
                    continue
                number_a = random.randint(0, 4)
        # 获取到题目
        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"现在是JAQ第{current}题")
            # 获取到所有选项
            options_a = self.get_eles(self.elements.options_a, 5)
            options_b = self.get_eles(self.elements.options_b, 5)
            number_a = random.randint(0, 4)
            number_b = random.randint(0, 3)
            if options_a[number_a].is_enabled() and options_b[number_b].is_enabled():
                options_a[number_a].click()
                # 获取到所有b选项
                options_b = self.get_elements(Answer.options_b)
                if len(options_b) < 4:
                    continue
                number_b = random.randint(0, 3)
                options_b[number_b].click()
            except:
                pass
                current += 1
                continue
            # 提交按钮存在则点击
            if self.submit_btn_is_display():
                self.click_js(Answer.submit_btn)
                # 数据是否上传完成
                if self.upload_is_success():
                    return True
                return False
        time.sleep(3)
        # 点击提交按钮
        self.click(self.elements.submit_btn, 10)
    def upload_is_success(self):
        """
@@ -54,7 +50,7 @@
        i = 0
        while i < 60:
            try:
                self.get_element_wait(Answer.upload_success_title)
                self.get_ele(self.elements.upload_success_title, timeout=10)
                return True
            except TimeoutException:
                i += 1
@@ -67,7 +63,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:
@@ -82,7 +78,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:
@@ -97,7 +93,7 @@
        """
        try:
            # 获取标题
            self.get_element_wait(Answer.title)
            self.get_element_wait(self.elements.title)
            return True
        except TimeoutException:
            return False
@@ -110,7 +106,7 @@
        i = 0
        while i < 10:
            try:
                self.get_element(Answer.loading_text)
                self.get_ele(self.elements.loading_text)
                i += 1
                time.sleep(1)
            except:
@@ -123,4 +119,4 @@
        开始测试按钮
        :return:
        """
        self.click_wait(Answer.start_btn)
        self.click_wait(self.elements.start_btn)