import random from base.base_page import BasePage from elements.vaq_answer_elements import VAQAnswerElements from selenium.common.exceptions import * from selenium.webdriver.common.by import By import time import re class VAQAnswerPage(BasePage): """ 答题页面 """ loading_count = 0 elements = VAQAnswerElements slice_count = 9 def answer(self): time.sleep(3) # 点击开始测试 self.click(self.elements.start_btn) time.sleep(2) # 点击继续测试 self.click(self.elements.start_btn) pre_pictures = self.get_eles(self.elements.pre_picture_btn, 10) for pre_picture in pre_pictures: pre_picture.click() time.sleep(0.2) # 点击下一步 self.click(self.elements.start_btn) time.sleep(1) for i in range(0, self.slice_count): # 获取当前所需图片数量的文字 picture_count_text = self.get_ele(self.elements.current_require_picture_count) pictures = self.get_eles(self.elements.picture_btn, 10) match = re.search(r"(\d+) / (\d+)", picture_count_text.text) total = int(match.group(2)) if (i + 1) != self.slice_count: for k in range(0, total): self.driver.execute_script("arguments[0].click();", pictures[k]) time.sleep(0.2) if i == 0: self.click(self.elements.start_btn) else: self.click(self.elements.next_btn) time.sleep(1) time.sleep(2) # 提交 self.click(self.elements.submit_btn) def upload_is_success(self): """ 判断数据是否上传完成 :return: """ i = 0 while i < 60: try: self.get_element_wait(Answer.upload_success_title) 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) 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_element(Answer.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(Answer.title) 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) time.sleep(1) self.click_wait(Answer.start_btn) time.sleep(1) self.click_wait(Answer.start_btn) time.sleep(1)