def test_QYTXL_0010(self): """模糊搜索(数字、中文、英文)""" # 进入企业通讯录首页 Preconditions.enter_enterprise_contacts_page() ecp = EnterpriseContactsPage() # 点击搜索框 ecp.click_search_box() search_name = "陈" ecp.input_search_message(search_name) time.sleep(2) # 1.检查搜索结果是否模糊匹配关键字 self.assertEquals(ecp.is_search_contacts_name_match(search_name), True) search_name2 = "zh" ecp.input_search_message(search_name2) time.sleep(2) # 2.检查搜索结果是否模糊匹配关键字 self.assertEquals(ecp.is_search_contacts_name_match("郑海"), True) search_number = "138028" ecp.input_search_message(search_number) time.sleep(2) # 3.检查搜索结果是否模糊匹配关键字 self.assertEquals(ecp.is_search_contacts_number_match(search_number), True) ecp.click_return() time.sleep(1) ecp.click_back() time.sleep(1) ecp.click_back() wbp = WorkbenchPage() wbp.wait_for_workbench_page_load()
def tearDown_test_QYTXL_0016(): """恢复环境""" Preconditions.make_already_in_message_page() mp = MessagePage() mp.open_contacts_page() cp = ContactsPage() cp.wait_for_page_load() # 删除指定联系人 cp.click_search_box() name = "陈丹丹" contact_search = ContactListSearchPage() contact_search.wait_for_page_load() contact_search.input_search_keyword(name) if contact_search.is_contact_in_list(name): cp.select_contacts_by_name(name) cdp = ContactDetailsPage() cdp.wait_for_page_load() cdp.click_edit_contact() time.sleep(1) current_mobile().hide_keyboard_if_display() time.sleep(1) cdp.change_delete_number() cdp.click_sure_delete() contact_search.click_back() cp.wait_for_page_load() mp.open_workbench_page() wbp = WorkbenchPage() # 返回工作台 wbp.wait_for_workbench_page_load()
def test_KQDK_0006(self): """点击顶部返回键,返回到上一级页面""" acp = AttendanceCardPage() acp.wait_for_page_load() acp.click_back() wbp = WorkbenchPage() # 1.等待工作台首页加载 wbp.wait_for_workbench_page_load() wbp.click_attendance_card() # 解决工作台不稳定问题 n = 1 while not acp.page_should_contain_text2("考勤组"): acp.click_back_by_android() wbp.wait_for_workbench_page_load() wbp.click_attendance_card() n += 1 if n > 20: break acp.wait_for_page_load() acp.click_help_icon() time.sleep(2) acp.click_back() # 2.等待考勤打卡首页加载 acp.wait_for_page_load()
def test_QY_0002(self): """点击返回键返回上一级页面""" # 进入管理员指引首页 Preconditions.enter_manager_guide_page() mgp = ManagerGuidePage() # 1.进入各个指引页,点击顶部【<】 mgp.click_guide_by_name("添加/邀请成员 壮大团队,提高协同办公效率") mgp.wait_for_guide_page_load("添加/邀请成员") mgp.click_back() time.sleep(1) mgp.click_guide_by_name("快速建群 根据组织架构快速建群,方便快捷") mgp.wait_for_guide_page_load("快速建群") mgp.click_back() time.sleep(1) mgp.click_guide_by_name("应用配置 灵活配置应用,打造专属工作台") mgp.wait_for_guide_page_load("应用配置") mgp.click_back() time.sleep(1) mgp.click_guide_by_name("企业认证 官方认证更权威,免费获取更多权益") mgp.wait_for_guide_page_load("企业认证") mgp.click_back() time.sleep(1) mgp.click_guide_by_name("后台登录指引 更多管理功能,登录和飞信企业管理后台") mgp.wait_for_guide_page_load("后台登录指引") mgp.click_back() # 等待管理员指引首页加载 mgp.wait_for_page_load() mgp.click_back() # 等待工作台首页加载 wbp = WorkbenchPage() wbp.wait_for_workbench_page_load()
def enter_workbench_page(): """进入工作台首页""" mp = MessagePage() mp.wait_for_page_load() mp.click_workbench() wbp = WorkbenchPage() wbp.wait_for_page_load()
def test_QYTXL_0003(self): """用户在企业部门下又在企业子一层级中,直接进入企业层级""" wbp = WorkbenchPage() # 添加本机号码到指定部门 department_name = "admin_department" Preconditions.add_phone_number_to_department(department_name) # 添加本机号码到和通讯录 Preconditions.add_phone_number_to_he_contacts() workbench_name = wbp.get_workbench_name() # 解决用户部门变更后不能及时刷新的问题 wbp.click_company_contacts() ecp = EnterpriseContactsPage() ecp.wait_for_page_load() time.sleep(2) ecp.click_back() time.sleep(2) if ecp.is_exist_department_name(): ecp.click_back() wbp.wait_for_workbench_page_load() wbp.click_company_contacts() ecp.wait_for_page_load() # 1.是否直接进入企业层级:企业+部门名称 self.assertEquals(ecp.is_text_present(workbench_name), True) result = ecp.is_text_present(department_name) self.assertEquals(result, True)
def test_QYTXL_0004(self): """用户同时在两个部门下直接进入企业层级""" wbp = WorkbenchPage() # 添加本机号码到指定部门1 department_name1 = "admin_department1" Preconditions.add_phone_number_to_department(department_name1) # 添加本机号码到指定部门2 department_name2 = "admin_department2" Preconditions.add_phone_number_to_department(department_name2) workbench_name = wbp.get_workbench_name() # 解决用户部门变更后不能及时刷新的问题 wbp.click_company_contacts() ecp = EnterpriseContactsPage() ecp.wait_for_page_load() time.sleep(2) ecp.click_back() time.sleep(2) if ecp.is_exist_department_name(): ecp.click_back() wbp.wait_for_workbench_page_load() wbp.click_company_contacts() ecp.wait_for_page_load() # 1.跳转后是否显示企业层级:企业+部门名称(部门随机显示一个) self.assertEquals(ecp.is_text_present(workbench_name), True) result1 = ecp.is_text_present(department_name1) result2 = ecp.is_text_present(department_name2) self.assertEquals((result1 or result2), True)
def tearDown_test_QYTXL_0004(): """恢复环境""" fail_time = 0 while fail_time < 5: try: Preconditions.make_already_in_message_page() mp = MessagePage() mp.open_workbench_page() wbp = WorkbenchPage() Preconditions.delete_department_by_name("admin_department1") Preconditions.delete_department_by_name("admin_department2") workbench_name = wbp.get_workbench_name() # 查找并点击所有展开元素 wbp.find_and_click_open_element() # 解决用户部门变更后不能及时刷新的问题 wbp.click_company_contacts() ecp = EnterpriseContactsPage() ecp.wait_for_page_load() if ecp.is_exist_department_by_name(workbench_name): ecp.click_corporate_by_name(workbench_name) time.sleep(2) ecp.click_back() time.sleep(2) if ecp.is_exist_department_name(): ecp.click_back() wbp.wait_for_workbench_page_load() return except: fail_time += 1
def test_ZYSX_0010(self): """添加子任务""" imp = ImportantMattersPage() imp.wait_for_page_load() # 解决工作台不稳定的问题 imp.click_back() wbp = WorkbenchPage() wbp.wait_for_workbench_page_load() wbp.click_important_items() n = 1 while not imp.page_should_contain_text2("新建事项"): imp.click_back() wbp.wait_for_workbench_page_load() wbp.click_important_items() n += 1 if n > 20: break # 创建新事项 Preconditions.create_new_item() imp.click_first_item() # 1.等待查看事项页面加载 imp.wait_for_check_item_page_load() imp.swipe_by_percent_on_screen(50, 70, 50, 30, 700) imp.click_add_subtasks() # 2.等待添加子任务页面加载 imp.wait_for_add_subtasks_page_load() # 输入子任务标题 title = "子任务标题0010" imp.input_subtasks_title(title) # 输入子任务描述 imp.input_subtasks_describe("子任务描述0010") imp.click_subtasks_add_icon() sccp = SelectCompanyContactsPage() # 3.等待选择联系人页面加载 sccp.wait_for_page_load() search_name = "大佬1" sccp.input_search_message(search_name) time.sleep(2) sccp.click_contacts_by_name(search_name) sccp.click_sure_button() # 4.返回添加子任务编辑界面,界面底部显示添加的联系人 imp.wait_for_add_subtasks_page_load() self.assertEquals(imp.is_text_present("佬1"), True) # 选择截止时间 imp.click_modify() time.sleep(2) imp.swipe_time_by_hour() imp.click_sure() time.sleep(1) imp.click_save() imp.wait_for_check_item_page_load() imp.swipe_by_percent_on_screen(50, 70, 50, 30, 700) # 5.中间子任务栏,显示刚刚添加的子任务 self.assertEquals(imp.is_text_present(title), True)
def test_RZ_0001(self): """验证点击返回按钮是否正确""" # 1.进入日志首页 Preconditions.enter_log_page() wlp = WorkbenchLogPage() # 2.点击返回 wlp.click_back() time.sleep(2) # 3.验证是否在工作台页面 wbp = WorkbenchPage() wbp.wait_for_workbench_page_load()
def test_RZ_0001(self): """验证点击返回按钮是否正确""" # 1.进入日志首页 Preconditions.enter_log_page() wlp = WorkbenchLogPage() # 2.点击返回 wlp.click_back() # 3.验证是否在工作台页面 wbp = WorkbenchPage() wbp.wait_for_workbench_page_load() self.assertTrue(wbp.is_on_this_page())
def test_YYSC_0002(self): """检查【>】返回按钮控件是否正确""" # 进入应用商城首页 Preconditions.enter_app_store_page() asp = AppStorePage() asp.wait_for_page_load() asp.click_back() wbp = WorkbenchPage() # 1.等待工作台页面加载 wbp.wait_for_workbench_page_load()
def test_YYSC_0001(self): """检查工作台进入应用商城入口是否正确""" # 进入应用商城首页 Preconditions.enter_app_store_page() asp = AppStorePage() # 1.等待应用商城首页加载 asp.wait_for_page_load() asp.click_back() wbp = WorkbenchPage() wbp.wait_for_workbench_page_load()
def test_ZYSX_0015(self): """修改子任务-修改截止时间""" imp = ImportantMattersPage() imp.wait_for_page_load() # 解决工作台不稳定的问题 imp.click_back() wbp = WorkbenchPage() wbp.wait_for_workbench_page_load() wbp.click_important_items() n = 1 while not imp.page_should_contain_text2("新建事项"): imp.click_back() wbp.wait_for_workbench_page_load() wbp.click_important_items() n += 1 if n > 20: break # 创建新事项 Preconditions.create_new_item() imp.click_first_item() # 1.等待查看事项页面加载 imp.wait_for_check_item_page_load() # 确保有子任务可修改 imp.swipe_by_percent_on_screen(50, 70, 50, 30, 700) imp.click_add_subtasks() imp.wait_for_add_subtasks_page_load() title = "子任务标题0015" imp.input_subtasks_title(title) imp.input_subtasks_describe("子任务描述0015") imp.click_subtasks_add_icon() sccp = SelectCompanyContactsPage() sccp.wait_for_page_load() sccp.click_contacts_by_name("大佬1") sccp.click_sure_button() imp.wait_for_add_subtasks_page_load() imp.click_save() imp.wait_for_check_item_page_load() imp.swipe_by_percent_on_screen(50, 70, 50, 30, 700) # 2.打开查看子任务界面 imp.click_text(title) time.sleep(2) # 3.打开时间选择弹窗 imp.click_modify() time.sleep(2) imp.swipe_time_by_minute() time.sleep(2) # 获取子任务当前滚动条时间(由于滚动条的时间xpath会随滑动变化,验证时间有局限性) current_time = imp.get_time_text() imp.click_sure() # 4.修改成功,返回查看子任务详情界面,界面截止时间显示为刚刚修改的时间信息 self.assertEquals(imp.is_toast_exist("修改成功"), True) imp.wait_for_check_subtasks_page_load() self.assertEquals(imp.is_text_present(current_time), True)
def test_QYTXL_0008(self): """验证点击返回按钮是否正确""" # 进入企业通讯录首页 Preconditions.enter_enterprise_contacts_page() ecp = EnterpriseContactsPage() # 点击【<】返回 ecp.click_back() time.sleep(1) # 1.等待工作台首页加载 wbp = WorkbenchPage() wbp.wait_for_workbench_page_load()
def test_YYSC_0018(self): """检查【X】返回按钮控件是否正确""" # 进入应用商城首页 Preconditions.enter_app_store_page() asp = AppStorePage() asp.wait_for_page_load() # 进入应用商城二三级页面 asp.click_text("超级会议") asp.wait_for_app_details_page_load() asp.click_close() wbp = WorkbenchPage() # 1.等待工作台页面加载 wbp.wait_for_workbench_page_load()
def test_YYSC_0008(self): """个人专区进入应用介绍页添加应用""" # 确保不存在指定个人应用 app_name = "政企优惠" Preconditions.ensure_not_exists_personal_app_by_name(app_name) # 添加工作台里的应用 wbp = WorkbenchPage() wbp.click_app_store() asp = AppStorePage() asp.wait_for_page_load() # 1.点击个人专区 asp.click_personal_area() asp.wait_for_personal_area_page_load() # 进入应用介绍页 asp.page_up() asp.click_text(app_name) # 2.等待应用介绍详情页加载 asp.wait_for_app_details_page_load() time.sleep(2) # 3.点击添加 asp.click_join() time.sleep(2) asp.click_sure() time.sleep(2) asp.click_back() asp.wait_for_personal_area_page_load() # 4.添加成功,添加按钮是否变化为打开按钮 self.assertEquals(asp.get_app_button_text_by_name(app_name), "打开") asp.click_back() wbp.wait_for_workbench_page_load() # 5.工作台新增个人应用分组,是否存在指定应用图标 self.assertEquals(wbp.is_exists_app_by_name("个人应用"), True) self.assertEquals(wbp.is_exists_app_by_name(app_name), True)
def test_YYSC_0015(self): """验证brenner图>1时是否正常切换""" # 进入应用商城首页 Preconditions.enter_app_store_page() asp = AppStorePage() asp.wait_for_page_load() # 1.滑动brenner图 asp.swipe_by_brenner1() time.sleep(1) asp.swipe_by_brenner2() asp.click_back() wbp = WorkbenchPage() wbp.wait_for_workbench_page_load()
def test_YYSC_0016(self): """验证点击brenner图是否跳转正确""" # 进入应用商城首页 Preconditions.enter_app_store_page() asp = AppStorePage() asp.wait_for_page_load() # 点击brenner图 asp.click_brenner() # 1.等待应用介绍详情页加载 asp.wait_for_app_details_page_load() asp.click_back() asp.wait_for_page_load() asp.click_back() wbp = WorkbenchPage() wbp.wait_for_workbench_page_load()
def default_setUp(self): """ 1、成功登录和飞信 2、当前页面在工作台首页 """ Preconditions.select_mobile('IOS-移动') mp = MessagePage() if mp.is_on_this_page(): Preconditions.enter_workbench_page() return wbp = WorkbenchPage() if not wbp.is_on_workbench_page(): current_mobile().launch_app() Preconditions.make_already_in_message_page() Preconditions.enter_workbench_page()
def test_QY_0011(self): """历史记录查看""" # 进入企业权益首页 Preconditions.enter_enterprise_interests_page() eip = EnterpriseInterestsPage() # 点击增值服务 eip.click_service() eip.wait_for_service_page_load() # 点击购买记录 eip.click_purchase_record() # 1.等待购买记录页加载 eip.wait_for_purchase_record_page_load() eip.click_close() # 等待工作台首页加载 wbp = WorkbenchPage() wbp.wait_for_workbench_page_load()
def test_QYTXL_0001(self): """用户不在任何部门下直接进入企业子一层级""" # 进入企业通讯录首页 Preconditions.enter_enterprise_contacts_page() ecp = EnterpriseContactsPage() # 1.是否直接进入企业子一层级 self.assertEquals(ecp.is_exist_corporate_grade(), True) ecp.click_back() time.sleep(2) # 2.页面是否跳转到企业层级 self.assertEquals(ecp.is_exist_corporate_grade(), False) self.assertEquals(ecp.is_exist_department_name(), True) ecp.click_back() # 等待工作台首页加载 wbp = WorkbenchPage() wbp.wait_for_workbench_page_load()
def test_YYSC_0007(self): """个人专区添加应用""" # 确保不存在指定个人应用 app_name = "帮助中心" Preconditions.ensure_not_exists_personal_app_by_name(app_name) # Preconditions.ensure_not_exists_app_by_name(app_name) # 添加工作台里的应用 wbp = WorkbenchPage() wbp.click_app_store() asp = AppStorePage() asp.wait_for_page_load() # 1.点击个人专区 asp.click_personal_area() asp.wait_for_personal_area_page_load() # 2.添加指定应用 asp.add_app_by_name(app_name) time.sleep(2) # asp.click_add_app() asp.click_sure() # 3.添加成功,添加按钮是否变化为打开按钮 # self.assertEquals(asp.is_toast_exist("添加应用成功"), True) asp.wait_for_personal_area_page_load() self.assertEquals(asp.get_app_button_text_by_name(app_name), "打开") asp.click_back() wbp.wait_for_workbench_page_load() # 4.工作台新增个人应用分组,是否存在指定应用图标 # self.assertEquals(wbp.is_exists_app_by_name("个人应用"), True) self.assertEquals(wbp.is_exists_app_by_name(app_name), True)
def default_setUp(self): """ 1、成功登录和飞信 2、当前页面在工作台首页 """ Preconditions.select_mobile('Android-移动') mp = MessagePage() if mp.is_on_this_page(): Preconditions.enter_workbench_page() return wbp = WorkbenchPage() if wbp.is_on_workbench_page(): current_mobile().hide_keyboard_if_display() else: current_mobile().launch_app() Preconditions.make_already_in_message_page() Preconditions.enter_workbench_page()
def test_QY_0005(self): """点击权益页面可正常打开""" # 进入企业权益首页 Preconditions.enter_enterprise_interests_page() eip = EnterpriseInterestsPage() # 1.页面是否存在元素 self.assertEquals(eip.is_exist_element_by_name("图标"), True) self.assertEquals(eip.is_exist_element_by_name("企业名称"), True) self.assertEquals(eip.is_exist_element_by_name("认证"), True) self.assertEquals(eip.is_exist_element_by_name("人数"), True) self.assertEquals(eip.is_exist_element_by_name("超级会议剩余时长"), True) self.assertEquals(eip.is_exist_element_by_name("群发信使剩余条数"), True) self.assertEquals(eip.is_exist_element_by_name("语音通知剩余次数"), True) self.assertEquals(eip.is_exist_element_by_name("增值服务"), True) eip.click_back() # 等待工作台首页加载 wbp = WorkbenchPage() wbp.wait_for_workbench_page_load()
def test_QY_0008(self): """和飞信套餐购买- 不勾选同意""" # 进入企业权益首页 Preconditions.enter_enterprise_interests_page() eip = EnterpriseInterestsPage() # 点击增值服务 eip.click_service() eip.wait_for_service_page_load() eip.click_text_by_name("和飞信套餐") eip.click_text_by_name("5元套餐包") eip.click_sure() time.sleep(2) # 1.是否弹出提示“请先阅读协议内容” self.assertEquals(eip.is_text_present("请先阅读协议内容"), True) eip.click_close() # 等待工作台首页加载 wbp = WorkbenchPage() wbp.wait_for_workbench_page_load()
def test_QY_0001(self): """能够正常打开管理员指引页面,可以正常返回""" # 进入管理员指引首页 Preconditions.enter_manager_guide_page() mgp = ManagerGuidePage() # 解决工作台不稳定问题 mgp.click_back() wbp = WorkbenchPage() wbp.wait_for_workbench_page_load() wbp.click_manager_guide() mgp.wait_for_page_load() # 1、2.进入各个指引页 mgp.click_guide_by_name("添加/邀请成员 壮大团队,提高协同办公效率") mgp.wait_for_guide_page_load("添加/邀请成员") mgp.click_back() time.sleep(1) mgp.click_guide_by_name("快速建群 根据组织架构快速建群,方便快捷") mgp.wait_for_guide_page_load("快速建群") mgp.click_back() time.sleep(1) mgp.click_guide_by_name("应用配置 灵活配置应用,打造专属工作台") mgp.wait_for_guide_page_load("应用配置") mgp.click_back() time.sleep(1) mgp.click_guide_by_name("企业认证 官方认证更权威,免费获取更多权益") mgp.wait_for_guide_page_load("企业认证") mgp.click_back() time.sleep(1) mgp.click_guide_by_name("后台登录指引 更多管理功能,登录和飞信企业管理后台") mgp.wait_for_guide_page_load("后台登录指引") mgp.click_back() time.sleep(1) mgp.swipe_by_percent_on_screen(50, 70, 50, 30, 700) mgp.swipe_by_percent_on_screen(50, 70, 50, 30, 700) time.sleep(2) # 3.进入帮助中心 mgp.click_guide_by_name("帮助中心") mgp.wait_for_guide_page_load("创建团队") time.sleep(5) mgp.click_guide_by_name("员工手册") mgp.wait_for_guide_page_load("常见问题") mgp.click_guide_by_name("应用大全") mgp.wait_for_guide_page_load("和飞信特色通讯套件") mgp.click_guide_by_name("开发者文档") mgp.wait_for_guide_page_load("开发者接入") mgp.click_back() # 等待管理员指引首页加载 mgp.wait_for_page_load() mgp.click_back() # 等待工作台首页加载 wbp.wait_for_workbench_page_load()
def test_QYTXL_0011(self): """网络异常下搜索企业通讯录联系人""" # 进入企业通讯录首页 Preconditions.enter_enterprise_contacts_page() ecp = EnterpriseContactsPage() # 设置手机网络断开 ecp.set_network_status(0) # 点击搜索框 ecp.click_search_box() search_name = "大佬1" ecp.input_search_message(search_name) # 1.页面是否出现网络异常提示 self.assertEquals(ecp.is_toast_exist("网络连接异常"), True) ecp.hide_keyboard() time.sleep(3) self.assertEquals(ecp.is_text_present("网络出错,轻触屏幕重新加载"), True) ecp.click_return() time.sleep(1) ecp.click_back_by_android(2) wbp = WorkbenchPage() wbp.wait_for_workbench_page_load()
def test_QY_0007(self): """和飞信套餐购买""" # 进入企业权益首页 Preconditions.enter_enterprise_interests_page() eip = EnterpriseInterestsPage() # 点击增值服务 eip.click_service() eip.wait_for_service_page_load() eip.click_text_by_name("和飞信套餐") eip.click_text_by_name("5元套餐包") eip.click_agree_button() eip.click_sure() time.sleep(2) eip.click_sure_popup() # 1.等待支付收银台界面加载 eip.wait_for_pay_page_load() eip.click_close() # 等待工作台首页加载 wbp = WorkbenchPage() wbp.wait_for_workbench_page_load()
def enter_app_store_page(): """进入应用商城首页""" wbp = WorkbenchPage() wbp.wait_for_workbench_page_load() wbp.click_app_store() asp = AppStorePage() asp.wait_for_page_load()