from datetime import datetime import time from selenium.webdriver.common.by import By from selenium.common.exceptions import TimeoutException import pytest from selenium import webdriver from po.login_page import LoginPage from po.home_page import HomePage from po.test_package_list_page import TestPackageListPage from po.share_add_page import ShareAddPage from po.caq_answer_page import CAQAnswerPage from comm.my_random import * class TestCAQ: driver = None test_package_name = "CAQ自动测试包-20230718101350" @pytest.mark.parametrize('data_read', ["CAQ"], indirect=True) def test_create_package(self, data_read: dict, driver): """ 创建测试包 :param data_read: 读取数据 :return: """ # 创建home页面的对象 home_page = HomePage(driver) # 点击左侧菜单进入页面 home_page.menu_select(data_read["menu"]) # 创建测试包列表页面的对象 test_package_list = TestPackageListPage(driver) # 创建测试包并接收创建的测试包名称 create_package_name = test_package_list.create_package(data_read["add"]) # 赋值到类变量 TestCAQ.test_package_name = create_package_name time.sleep(5) # 判断是否成功创建 assert test_package_list.is_create_success(create_package_name) @pytest.mark.parametrize('data_read', ["CAQ"], indirect=True) def test_open_url(self, data_read: dict, driver): """ 打开分享链接 :return: """ # 创建测试包列表页面的对象 test_package_list = TestPackageListPage(driver) # 获取到分享链接 url = test_package_list.get_share_url(TestCAQ.test_package_name) # 打开新标签页加载url test_package_list.goto_new_table(url) # 创建分享页面对象 share_add = ShareAddPage(driver) # 填写信息提交并获取测试链接 name = random_string(8) email = name + "@gmail.com" test_url = share_add.get_test_url(name, email) # 当前页面打开链接 share_add.goto(test_url) # 点击提交按钮 share_add.click(share_add.es.submit_btn, timeout=10) # 获取数据 info = data_read["info"] # 填写基本信息并提交 share_add.fill_info(email, info["position"], info["dept"]) def test_answer(self, driver): # 创建answer对象 answer_page = CAQAnswerPage(driver) # 开始答题 flag = answer_page.answer() # 答完题关闭当前标签页 driver.close() # 切换到第一个标签页 answer_page.switch_window(0) if flag is not None or not flag: assert flag return def test_delete_package(self, driver): # 创建测试包列表页面的对象 test_package_list = TestPackageListPage(driver) # 删除测试包 test_package_list.delete_package(TestCAQ.test_package_name) # 判断删除是否成功 try: test_package_list.wait_visible(test_package_list.es.operate_success_layer) assert True except TimeoutException: assert False # 关闭 driver.quit() if __name__ == '__main__': pytest.main(["-s", __file__])