yj
2024-07-24 3b84cce1ee43215b9f398148fda19f4b1025856b
po/vaq_answer_page.py
@@ -1,10 +1,11 @@
import random
from base.base_page import BasePage
from elements.vaq_answer_elements import VAQAnswerElements as Answer
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):
@@ -13,49 +14,46 @@
    """
    loading_count = 0
    elements = VAQAnswerElements
    slice_count = 9
    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)
        time.sleep(3)
        # 点击开始测试
        self.click(Answer.start_btn)
        self.click(self.elements.start_btn)
        time.sleep(2)
        # 点击继续测试
        self.click(self.elements.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
        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):
        """