import random from base.base_page import BasePage from elements.jaq_answer_elements import JAQAnswerElements from selenium.common.exceptions import * import time import re class JAQAnswerPage(BasePage): """ 答题页面 """ loading_count = 0 elements = JAQAnswerElements def answer(self): # 暂停3秒 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"现在是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() options_b[number_b].click() current += 1 continue time.sleep(3) # 点击提交按钮 self.click(self.elements.submit_btn, 10) def upload_is_success(self): """ 判断数据是否上传完成 :return: """ 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_ele(self.elements.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.elements.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.elements.title) return True except TimeoutException: return False def loadin_text(self): """ 判断加载框加载,如果加载超过10秒直接退出当前测试 :return: """ i = 0 while i < 10: try: self.get_ele(self.elements.loading_text) i += 1 time.sleep(1) except: return False else: return True def start_btn(self): """ 开始测试按钮 :return: """ self.click_wait(self.elements.start_btn)