| | |
| | | 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): |
| | |
| | | """ |
| | | loading_count = 0 |
| | | |
| | | def answer_MAQ(self): |
| | | 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(Answer.submit_btn) |
| | | # 数据是否上传完成 |
| | | time.sleep(15) |
| | | if self.upload_is_success(): |
| | | return True |
| | | return False |
| | | time.sleep(3) |
| | | # 点击提交按钮 |
| | | self.click(self.elements.submit_btn, 10) |
| | | |
| | | def upload_is_success(self): |
| | | """ |
| | | 判断数据是否上传完成 |
| | | :return: |
| | | """ |
| | | try: |
| | | self.get_element_wait(Answer.upload_success_title) |
| | | return True |
| | | except TimeoutException: |
| | | return False |
| | | i = 0 |
| | | while i < 60: |
| | | try: |
| | | self.get_ele(self.elements.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_element(Answer.submit_btn) |
| | | button = self.get_ele(self.elements.submit_btn) |
| | | if button.is_enabled(): |
| | | return True |
| | | else: |
| | |
| | | """ |
| | | 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: |
| | |
| | | """ |
| | | try: |
| | | # 获取标题 |
| | | self.get_element_wait(Answer.title) |
| | | self.get_element_wait(self.elements.title) |
| | | return True |
| | | except TimeoutException: |
| | | return False |
| | |
| | | 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: |
| | |
| | | 开始测试按钮 |
| | | :return: |
| | | """ |
| | | self.click_wait(Answer.start_btn) |
| | | self.click_wait(self.elements.start_btn) |