def test_QFXS_0008(self): """1、点击用户本人头像""" mess = MessagePage() mess.open_workbench_page() wp = WorkbenchPage() wp.wait_for_page_load() #点击群发信使 wp.click_group_messenger() #等待页面加载 mgp=MessageGroupPage() mgp.wait_for_page_load() #点击新建短信 mgp.click_build_message() mgp.wait_for_edit_message_page_load() #点击收件人 mgp.click_addressee() #点击本机号码 sccp=SelectCompanyContactsPage() sccp.wait_for_page_load() phone_number = current_mobile().get_cards(CardType.CHINA_MOBILE)[0] sccp.click_text(phone_number) if not sccp.is_toast_exist("该联系人不可选"): raise AssertionError("没有toast提示该联系人不可选") sccp.click_back() time.sleep(2) sccp.click_back() mgp.wait_for_edit_message_page_load() mgp.click_close()
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_QFXS_0013(self): """1、点击“+”,添加接收人 2、添加人数小于当前企业剩余条数""" mess = MessagePage() mess.open_workbench_page() wp = WorkbenchPage() wp.wait_for_page_load() # 点击群发信使 wp.click_group_messenger() # 等待页面加载 mgp = MessageGroupPage() mgp.wait_for_page_load() # 点击新建短信 mgp.click_build_message() mgp.wait_for_edit_message_page_load() # 点击收件人 mgp.click_addressee() # 点击指定联系人 sccp = SelectCompanyContactsPage() sccp.wait_for_page_load() sccp.click_one_contact("飞信电话") if not sccp.is_left_head_exit(): raise AssertionError("找不到搜索栏左侧被点击人员人名和头像") #返回 sccp.click_back() time.sleep(2) if sccp.is_exist_corporate_name(): sccp.click_back_by_android() mgp.wait_for_edit_message_page_load() mgp.click_close()
def test_QFXS_0010(self): """1、搜索不存在的用户名称""" mess = MessagePage() mess.open_workbench_page() wp = WorkbenchPage() wp.wait_for_page_load() # 点击群发信使 wp.click_group_messenger() # 等待页面加载 mgp = MessageGroupPage() mgp.wait_for_page_load() # 点击新建短信 mgp.click_build_message() mgp.wait_for_edit_message_page_load() # 点击收件人 mgp.click_addressee() # 点击本机号码 sccp = SelectCompanyContactsPage() sccp.wait_for_page_load() import random a=str(random.random()) #搜索框输入不存在用户名 sccp.input_search_message(a) if not sccp.is_toast_exist("无搜索结果"): raise AssertionError("没有提示 无搜索结果") sccp.click_back() time.sleep(2) if sccp.is_exist_corporate_name(): sccp.click_back_by_android() mgp.wait_for_edit_message_page_load() mgp.click_close()
def enter_message_page(): """进入到消息列表页面""" Preconditions.select_mobile('Android-移动', False) current_mobile().hide_keyboard_if_display() time.sleep(1) # 如果在消息页,不做任何操作 mess = MessagePage() if mess.is_on_this_page(): return # 进入一键登录页 Preconditions.make_already_in_one_key_login_page() # 从一键登录页面登录 Preconditions.login_by_one_key_login()
def default_setUp(self): """确保进入消息列表页面""" Preconditions.select_mobile('Android-移动') mess = MessagePage() if mess.is_on_this_page(): return wp = WorkbenchPage() if wp.is_on_this_page(): current_mobile().hide_keyboard_if_display() wp.open_message_page() return else: current_mobile().launch_app() Preconditions.enter_message_page()
def test_QFXS_0011(self): """1、再次点击头像,取消选择人员""" mess = MessagePage() mess.open_workbench_page() wp = WorkbenchPage() wp.wait_for_page_load() # 点击组织架构,添加联系人 wp.click_organization() org=Organization() org.wait_for_page_load() if not org.is_exit_element_by_text_swipe("飞信电话"): org.click_text("添加联系人") time.sleep(2) org.click_text("从手机通讯录添加") sccp = SelectCompanyContactsPage() sccp.wait_for_page_load() # 飞信电话 or 和飞信电话 sccp.click_one_contact("飞信电话") sccp.click_sure() time.sleep(1) org.click_back_by_android() time.sleep(2) org.wait_for_page_load() org.click_back() wp.wait_for_page_load() # 点击群发信使 wp.click_group_messenger() # 等待页面加载 mgp = MessageGroupPage() mgp.wait_for_page_load() # 点击新建短信 mgp.click_build_message() mgp.wait_for_edit_message_page_load() # 点击收件人 mgp.click_addressee() # 点击指定联系人 sccp = SelectCompanyContactsPage() sccp.wait_for_page_load() sccp.click_one_contact("飞信电话") time.sleep(3) sccp.click_text("飞信电话") if sccp.is_left_head_exit(): raise AssertionError("搜索栏左侧被取消人员人名和头像没有被移除") #返回 sccp.click_back() time.sleep(2) if sccp.is_exist_corporate_name(): sccp.click_back_by_android() mgp.wait_for_edit_message_page_load() mgp.click_close()
def make_already_in_message_page(reset=False): """确保应用在消息页面""" # 如果在消息页,不做任何操作 mp = MessagePage() if mp.is_on_this_page(): return else: try: current_mobile().launch_app() mp.wait_for_page_load() except: # 进入一键登录页 Preconditions.make_already_in_one_key_login_page() # 从一键登录页面登录 Preconditions.login_by_one_key_login()
def default_setUp(self): """ 1、成功登录和飞信 2、当前页面在群发信使首页 """ Preconditions.select_mobile('IOS-移动') mp = MessagePage() if mp.is_on_this_page(): Preconditions.enter_group_messenger_page() return gmp = GroupMessengerPage() if not gmp.is_on_group_messenger_page(): current_mobile().launch_app() Preconditions.make_already_in_message_page() Preconditions.enter_group_messenger_page()
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 setUp_test_ZYSX_0001(): Preconditions.select_mobile('Android-移动') mp = MessagePage() mp.wait_for_page_load() if mp.is_on_this_page(): mp.click_workbench() wbp = WorkbenchPage() wbp.wait_for_workbench_page_load() # 查找并点击所有展开元素 wbp.find_and_click_open_element() if wbp.is_text_present("ateam7272"): wbp.click_setting_icon() wbp.click_text_or_description("默认团队") wbp.click_text_or_description("测试团队1") wbp.click_text_or_description("确定") time.sleep(2) wbp.click_setting_back() wbp.click_message_icon() Preconditions.enter_important_matters_page() return imp = ImportantMattersPage() if imp.is_on_important_matters_page(): current_mobile().hide_keyboard_if_display() else: current_mobile().launch_app() Preconditions.make_already_in_message_page() Preconditions.enter_important_matters_page()
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 login_by_one_key_login(): """ 从一键登录页面登录 :return: """ # 等待号码加载完成后,点击一键登录 one_key = OneKeyLoginPage() one_key.wait_for_page_load() # one_key.wait_for_tell_number_load(60) one_key.click_one_key_login() if one_key.have_read_agreement_detail(): one_key.click_read_agreement_detail() # 同意协议 agreement = AgreementDetailPage() agreement.click_agree_button() # 等待消息页 message_page = MessagePage() message_page.wait_login_success(60)
def default_setUp(self): """ 1、成功登录和飞信 2、当前页面在群发信使首页 """ Preconditions.select_mobile('Android-移动') mp = MessagePage() if mp.is_on_this_page(): Preconditions.enter_group_messenger_page() return gmp = GroupMessengerPage() if gmp.is_on_group_messenger_page(): current_mobile().hide_keyboard_if_display() else: current_mobile().launch_app() Preconditions.make_already_in_message_page() Preconditions.enter_group_messenger_page()
def default_setUp(self): """ 1、成功登录和飞信 2、当前页面在重要事项首页 """ Preconditions.select_mobile('Android-移动') mp = MessagePage() if mp.is_on_this_page(): Preconditions.enter_important_matters_page() return imp = ImportantMattersPage() if imp.is_on_important_matters_page(): current_mobile().hide_keyboard_if_display() else: current_mobile().launch_app() Preconditions.make_already_in_message_page() Preconditions.enter_important_matters_page()
def default_setUp(self): """ 1、成功登录和飞信 2、当前页面在考勤打卡首页 """ Preconditions.select_mobile('Android-移动') mp = MessagePage() if mp.is_on_this_page(): Preconditions.enter_attendance_card_page() return acp = AttendanceCardPage() if acp.is_on_attendance_card_page(): current_mobile().hide_keyboard_if_display() else: current_mobile().launch_app() Preconditions.make_already_in_message_page() Preconditions.enter_attendance_card_page()
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 tearDown_test_QFXS_0012(): """恢复环境""" 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() sccp = SelectCompanyContactsPage() time.sleep(2) if sccp.is_exist_department_name(): ecp.click_back() wbp.wait_for_workbench_page_load() wbp.click_group_messenger() n = 1 # 解决工作台不稳定问题 while not wbp.page_should_contain_text2("新建短信"): wbp.click_group_messenger() n += 1 if n > 20: break return except: fail_time += 1
def enter_workbench_page(): """进入工作台首页""" mp = MessagePage() mp.wait_for_page_load() mp.click_workbench() wbp = WorkbenchPage() wbp.wait_for_page_load()
def enter_group_messenger_page(): """进入群发信使首页""" mp = MessagePage() mp.wait_for_page_load() mp.click_workbench() wbp = WorkbenchPage() wbp.wait_for_page_load() wbp.click_add_group_messenger()
def enter_workbench_page(): """进入工作台首页""" mp = MessagePage() mp.wait_for_page_load() mp.click_workbench() wbp = WorkbenchPage() wbp.wait_for_workbench_page_load() # 查找并点击所有展开元素 wbp.find_and_click_open_element()
def get_into_group_chat_page(name): """进入群聊聊天会话页面""" mp = MessagePage() mp.wait_for_page_load() # 点击 + mp.click_add_icon() # 点击发起群聊 mp.click_group_chat() scg = SelectContactsPage() scg.wait_for_page_load() scg.click_select_one_group() sog = SelectOneGroupPage() # 等待“选择一个群”页面加载 sog.wait_for_page_load() # 选择一个普通群 sog.selecting_one_group_by_name(name) gcp = GroupChatPage() gcp.wait_for_page_load()
def enter_single_chat_page(name): """进入单聊聊天会话页面""" mp = MessagePage() mp.wait_for_page_load() # 点击 + mp.click_add_icon() # 点击“新建消息” mp.click_new_message() slc = SelectLocalContactsPage() slc.wait_for_page_load() # 进入单聊会话页面 slc.selecting_local_contacts_by_name(name) bcp = BaseChatPage() if bcp.is_exist_dialog(): # 点击我已阅读 bcp.click_i_have_read() scp = SingleChatPage() # 等待单聊会话页面加载 scp.wait_for_page_load()
def get_into_enterprise_group_chat_page(): """进入企业群聊天会话页面 返回群名""" mp = MessagePage() mp.wait_for_page_load() # 点击 + mp.click_add_icon() # 点击发起群聊 mp.click_group_chat() scg = SelectContactsPage() scg.wait_for_page_load() scg.click_select_one_group() sog = SelectOneGroupPage() # 等待“选择一个群”页面加载 sog.wait_for_page_load() # 选择一个企业群 name = sog.select_one_enterprise_group() gcp = GroupChatPage() gcp.wait_for_page_load() return name
def enter_group_messenger_page(): """进入群发信使首页""" mp = MessagePage() mp.wait_for_page_load() mp.click_workbench() wbp = WorkbenchPage() wbp.wait_for_workbench_page_load() # 查找并点击所有展开元素 wbp.find_and_click_open_element() wbp.click_add_group_messenger() n = 1 # 解决工作台不稳定问题 while not wbp.page_should_contain_text2("新建短信"): wbp.click_group_messenger() n += 1 if n > 20: break
def make_already_in_message_page(): """确保进入消息界面""" preconditions.connect_mobile(REQUIRED_MOBILES['Android-移动']) current_mobile().hide_keyboard_if_display() message_page = MessagePage() if message_page.is_on_this_page(): return try: current_mobile().terminate_app('com.chinasofti.rcs', timeout=2000) except: pass current_mobile().launch_app() try: message_page.wait_until( condition=lambda d: message_page.is_on_this_page(), timeout=15 ) return except TimeoutException: pass preconditions.reset_and_relaunch_app() preconditions.make_already_in_one_key_login_page() preconditions.login_by_one_key_login() @staticmethod def enter_single_chat_page(name): """进入单聊聊天会话页面""" mp = MessagePage() mp.wait_for_page_load() # 点击 + mp.click_add_icon() # 点击“新建消息” mp.click_new_message() slc = SelectLocalContactsPage() slc.wait_for_page_load() # 进入单聊会话页面 slc.selecting_local_contacts_by_name(name) bcp = BaseChatPage() if bcp.is_exist_dialog(): # 点击我已阅读 bcp.click_i_have_read() scp = SingleChatPage() # 等待单聊会话页面加载 scp.wait_for_page_load()
def enter_mobile_attendance_page(): """进入移动出勤首页""" mp = MessagePage() mp.wait_for_page_load() mp.click_workbench() wbp = WorkbenchPage() wbp.wait_for_workbench_page_load() # 查找并点击所有展开元素 wbp.find_and_click_open_element() wbp.click_add_mobile_attendance() # 解决工作台不稳定问题 map = MobileAttendancePage() n = 1 while not map.page_should_contain_text2("考勤签到"): map.click_back() wbp.wait_for_workbench_page_load() wbp.click_mobile_attendance() n += 1 if n > 20: break
def enter_important_matters_page(): """进入重要事项首页""" mp = MessagePage() mp.wait_for_page_load() mp.click_workbench() wbp = WorkbenchPage() wbp.wait_for_workbench_page_load() # 查找并点击所有展开元素 wbp.find_and_click_open_element() wbp.click_add_important_matters() imp = ImportantMattersPage() # 解决工作台不稳定问题 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
def enter_attendance_card_page(): """进入考勤打卡首页""" mp = MessagePage() mp.wait_for_page_load() mp.click_workbench() wbp = WorkbenchPage() wbp.wait_for_workbench_page_load() # 查找并点击所有展开元素 wbp.find_and_click_open_element() wbp.click_add_attendance_card() acp = AttendanceCardPage() # 解决工作台不稳定问题 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 # 确保已经加入考勤组 if not acp.is_on_attendance_card_page(): acp.click_text("新建考勤组") time.sleep(2) if acp.is_text_present("始终允许"): acp.click_text("始终允许") time.sleep(2) acp.click_text("请选择") time.sleep(5) acp.click_text("全选") time.sleep(1) acp.click_text("确认") time.sleep(1) acp.click_create_attendance_group_button() time.sleep(5) acp.click_back() acp.wait_for_page_load()
def make_already_in_message_page(reset_required=False): """确保应用在消息页面""" if not reset_required: message_page = MessagePage() if message_page.is_on_this_page(): return else: try: current_mobile().terminate_app('com.chinasofti.rcs', timeout=2000) except: pass current_mobile().launch_app() try: message_page.wait_until( condition=lambda d: message_page.is_on_this_page(), timeout=3 ) return except TimeoutException: pass Preconditions.reset_and_relaunch_app() Preconditions.make_already_in_one_key_login_page() Preconditions.login_by_one_key_login()