| | |
| | | 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): |
| | |
| | | """ |
| | | 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) |
| | | |
| | | print("VAQ预选图片中...") |
| | | time.sleep(1) |
| | | for pre_picture in pre_pictures: |
| | | self.driver.execute_script("arguments[0].click();", pre_picture) |
| | | time.sleep(0.5) |
| | | |
| | | # 点击下一步 |
| | | self.click(self.elements.start_btn) |
| | | |
| | | time.sleep(1) |
| | | for i in range(0, self.slice_count): |
| | | print(f"当前是VAQ第{i+1}步") |
| | | # 获取当前所需图片数量的文字 |
| | | 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): |
| | | """ |