import random
|
|
from base.base_page import BasePage
|
from elements.vaq_answer_elements import VAQAnswerElements as Answer
|
from selenium.common.exceptions import *
|
from selenium.webdriver.common.by import By
|
import time
|
|
|
class VAQAnswerPage(BasePage):
|
"""
|
答题页面
|
"""
|
loading_count = 0
|
|
def answer(self):
|
# 暂停3秒
|
# 预选图片
|
# 获取到所有图片选项
|
pre_pictures = self.get_elements_wait(Answer.picture)
|
for picture in pre_pictures:
|
# 随机1到3
|
number = random.randint(1, 3)
|
# 拼接要点击的按钮的定位
|
btn_loc = (By.XPATH, "div[3]/div[" + str(number) + "]")
|
# 点击按钮
|
self.get_element_in(picture, btn_loc).click()
|
time.sleep(0.1)
|
# 点击下一步按钮
|
self.click(Answer.next_btn)
|
time.sleep(1)
|
|
# 点击开始测试
|
self.click(Answer.start_btn)
|
|
# 细致分类图片
|
# 每个步骤选择图片的数量
|
step_picture = [2, 2, 4, 4, 7, 7, 10, 10, 0]
|
i = 0
|
for num in step_picture:
|
for k in range(0, num):
|
# 获取到图片
|
picture = self.get_elements_wait(Answer.picture)[0]
|
# 拼接要点击的按钮的定位
|
btn_loc = (By.XPATH, "div[2]/div[1]/img")
|
# 点击按钮
|
btn = self.get_element_in(picture, btn_loc)
|
self.click_element_js(btn)
|
i += 1
|
# 点击下一步按钮
|
self.click(Answer.next_btn)
|
# 点击提交按钮
|
self.click_wait(Answer.submit_btn)
|
# 数据是否上传完成
|
time.sleep(10)
|
if self.upload_is_success():
|
return True
|
return False
|
|
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)
|