import random
|
|
from base.base_page import BasePage
|
from elements.caq_answer_elements import CAQAnswerElements
|
from selenium.common.exceptions import *
|
|
import time
|
import re
|
|
|
class CAQAnswerPage(BasePage):
|
"""
|
答题页面
|
"""
|
loading_count = 0
|
|
elements = CAQAnswerElements
|
|
def answer(self):
|
# 暂停3秒
|
time.sleep(3)
|
# 点击继续测试
|
self.click(self.elements.continue_testing_btn, 5)
|
|
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:
|
# 获取所有题目
|
questions = self.get_eles(self.elements.questions, 5)
|
for question in questions:
|
options = self.get_elements_in(question, self.elements.options)
|
number = random.randint(0, 4)
|
options[number].click()
|
|
if current == 1:
|
self.click(self.elements.btn)
|
else:
|
self.click(self.elements.next_btn)
|
current += 1
|
if current <= total:
|
time.sleep(1)
|
# 将页面滑动到最顶部
|
self.click(self.elements.scroll_top_btn, 5)
|
time.sleep(2)
|
time.sleep(2)
|
|
# 点击继续测试
|
self.click(self.elements.continue_testing_btn, 5)
|
|
title = self.get_ele(self.elements.q_title_2, 5)
|
# 截取已答数量与总数量
|
match = re.search(r"(\d+)/(\d+)", title.text)
|
current = int(match.group(1))
|
total = int(match.group(2))
|
|
while current <= total:
|
# 获取到所有选项
|
options = self.get_eles(self.elements.options_2, 5)
|
number = random.randint(0, 4)
|
options[number].click()
|
if current == 1:
|
self.click(self.elements.btn)
|
else:
|
if current == total:
|
time.sleep(1)
|
self.click(self.elements.next_btn)
|
current += 1
|
|
def upload_is_success(self):
|
"""
|
判断数据是否上传完成
|
:return:
|
"""
|
i = 0
|
while i < 60:
|
try:
|
self.get_element_wait(self.elements.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_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_element(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)
|