yj
2024-07-25 204169e8cae389613ea35c4ec3a0c89998679e70
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
import random
 
from base.base_page import BasePage
from elements.ciaq_answer_elements import CIAQAnswerElements
from selenium.common.exceptions import *
 
import time
import re
 
 
class CIAQAnswerPage(BasePage):
    """
    答题页面
    """
    loading_count = 0
 
    elements = CIAQAnswerElements
 
    slice_count = 3
 
    def answer(self):
        for i in range(self.slice_count):
            # 获取到题目
            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现在是CIAQ分片{i+1}第{current}题")
                # 获取到所有选项
                options = self.get_eles(self.elements.options, 5)
                number = random.randint(0, len(options) - 1)
                if options[number].is_enabled():
                    options[number].click()
                    current += 1
            if (i + 1) != self.slice_count:
                time.sleep(2)
                # 点击继续测试
                self.click(self.elements.continue_testing_btn, 10)
        time.sleep(2)
        self.click(self.elements.submit_btn, 10)
 
    def upload_is_success(self):
        """
        判断数据是否上传完成
        :return:
        """
        i = 0
        while i < 60:
            try:
                self.get_ele(self.es.upload_success_title, timeout=10)
                return True
            except TimeoutException:
                i += 1
                time.sleep(1)
        return False
 
    def submit_btn_is_display(self):
        """
        判断提交按钮是否存在
        :return:
        """
        try:
            button = self.get_ele(self.es.submit_btn)
            if button.is_enabled():
                return True
            else:
                return False
        except NoSuchElementException:
            return False
 
    def continue_btn_is_display(self):
        """
        判断继续测试按钮是否出现
        :return: bool
        """
        try:
            # 点击继续测试按钮
            button = self.get_ele(self.es.continue_testing_btn)
            if button.is_enabled():
                return True
            else:
                return False
        except NoSuchElementException:
            return False
 
    def title_is_display(self):
        """
        判断标题是否出现
        :return: bool
        """
        try:
            # 获取标题
            self.get_element_wait(self.es.title)
            return True
        except TimeoutException:
            return False
 
    def loadin_text(self):
        """
        判断加载框加载,如果加载超过10秒直接退出当前测试
        :return:
        """
        i = 0
        while i < 10:
            try:
                self.get_ele(self.es.loading_text)
                i += 1
                time.sleep(1)
            except:
                return False
        else:
            return True
 
    def start_btn(self):
        """
        开始测试按钮
        :return:
        """
        self.click_wait(self.es.start_btn)