from datetime import datetime import time from selenium.webdriver.common.by import By 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.jaq_answer_page import JAQAnswerPage from comm.my_random import * class TestJAQ: driver = None test_package_name = None @pytest.mark.parametrize('data_read', ["JAQ"], indirect=True) def test_create_package(self, data_read: dict): """ 创建测试包 :return: """ # 获取driver driver = TestJAQ.driver # 创建home页面的对象 home_page = HomePage(driver) # 点击左侧菜单进入页面 home_page.menu_select(data_read["menu"]) # 创建测试包列表页面的对象 test_package_list = TestPackageListPage(driver) # 点击创建按钮 test_package_list.create_btn() # 获取当前时间 current_time = datetime.now() # 转换为字符串 time_str = current_time.strftime("%Y%m%d%H%M%S") # 创建测试包填写的参数 # 测试包名称 test_package_name = "JAQ自动测试包-" + time_str # 设置测试包名称为类变量 TestJAQ.test_package_name = test_package_name # 获取创建测试包的数据 create_data = data_read["add"] # 填写测试包名称 test_package_list.fill(test_package_list.es.add_testPackageName_input, test_package_name) # 填写报告企业名称 test_package_list.fill(test_package_list.es.add_reportCompanyName_input, create_data["company"]) # 选择测试包类型 test_package_list.select(test_package_list.es.add_testPackageType_select, test_package_list.es.add_testPackageType_option, create_data["type"]) # 选择产品包 test_package_list.prodTree_select(create_data["product"]) # 输入hr邮箱 test_package_list.fill(test_package_list.es.add_hrEmail_input, create_data["hrEmail"]) # 输入有效期 test_package_list.fill(test_package_list.es.add_invalidTime, create_data["invalid"]) # 选择邀请邮件语言类型 test_package_list.select(test_package_list.es.add_templateLangType_select, test_package_list.es.add_templateLangType_option, create_data["memberLang"]) # 选择HR邮件语言类型 test_package_list.select(test_package_list.es.add_hrTemplateLangType_select, test_package_list.es.add_hrTemplateLangType_option, create_data["hrReportLang"]) # 选择报告模板 test_package_list.select(test_package_list.es.add_reportTemplateId_select, test_package_list.es.add_reportTemplateId_option, create_data["reportTemplate"]) # 输入要评价的岗位 test_package_list.fill(test_package_list.es.add_position_input, create_data["position"]) # 输入职业大类 test_package_list.fill(test_package_list.es.add_professionalCategory_input, create_data["professionalCategory"]) # 输入上级岗位 test_package_list.fill(test_package_list.es.add_superiorPosition_input, create_data["superiorPosition"]) # 点击测试者接收报告 test_package_list.click(test_package_list.es.add_autoSendReport_checkbox) # 选择测试者报告邮箱语言类型 test_package_list.select(test_package_list.es.add_memberReportLangType_select, test_package_list.es.add_memberReportLangType_option, create_data["memberReportLang"]) # 点击确认按钮 test_package_list.click(test_package_list.es.add_confirm_btn) time.sleep(2) # 判断是否成功创建 assert test_package_list.is_create_success(test_package_name) time.sleep(5) @pytest.mark.parametrize('data_read', ["JAQ"], indirect=True) def test_open_url(self, data_read: dict): """ 打开分享链接 :return: """ # 获取driver driver = TestJAQ.driver # 创建测试包列表页面的对象 test_package_list = TestPackageListPage(driver) # 获取到url url = test_package_list.get_share_url(TestJAQ.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) # 当前页面打开链接 driver.get(test_url) # 点击提交按钮 share_add.click(share_add.es.submit_btn) # 获取数据 info = data_read["info"] # 填写基本信息并提交 share_add.fill_info(email, info["position"], info["dept"]) time.sleep(5) def test_answer(self): # 获取driver driver = TestJAQ.driver # 创建answer对象 answer_page = JAQAnswerPage(driver) # 点击开始测试 answer_page.start_btn() # 开始答题 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 driver = TestJAQ.driver # 创建测试包列表页面的对象 test_package_list = TestPackageListPage(driver) # 删除测试包 test_package_list.delete_package(TestJAQ.test_package_name) time.sleep(5) # 关闭 driver.quit() if __name__ == '__main__': pytest.main(["-s", __file__])