class TestCase08AccountCenterVisualAccount(unittest.TestCase):

    def setUp(self):
        self.driver = AutomateDriverServer()
        self.base_url = self.driver.base_url
        self.base_page = BasePageServer(self.driver, self.base_url)
        self.login_page = LoginPage(self.driver, self.base_url)
        self.account_center_page_visual_account = AccountCenterVisualAccountPage(self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPage(self.driver, self.base_url)
        self.driver.set_window_max()
        self.account_center_page_read_csv = AccountCenterPageReadCsv()
        self.log_in_base = LogInBaseServer(self.driver, self.base_page)
        self.assert_text = AssertText()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_account_center_visual_account(self):
        '''通过csv测试虚拟账户管理功能'''
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        sleep(2)
        self.log_in_base.log_in()
        self.account_center_page_navi_bar.click_account_center_button()
        self.account_center_page_visual_account.enter_visual_account()

        csv_file = self.account_center_page_read_csv.read_csv('add_visual_account.csv')
        csv_data = csv.reader(csv_file)
        for row in csv_data:
            acc_to_add = {
                "account": row[0],
                "passwd": row[1]
            }
            # 登录
            # 获取虚拟账户管理title
            visual_account_title = self.account_center_page_visual_account.get_visual_account_title()
            # 验证消息中心title是否正确显示
            self.assertIn(self.assert_text.account_center_page_virtual_account_manager(), visual_account_title,
                          "虚拟账户管理title有误!")

            # 添加虚拟账户
            self.account_center_page_visual_account.add_visual_account(acc_to_add["account"], acc_to_add["passwd"])
            state = self.account_center_page_visual_account.get_visual_account_limits_state()
            self.assertEqual(False, state["edit_data"], "修改数据默认勾选了")
            self.assertEqual(False, state["instruction"], "下发指令默认勾选了")
            # 保存
            self.account_center_page_visual_account.save_add_info()

            # 验证是否保存成功
            save_status = self.account_center_page_visual_account.get_save_status()
            self.assertIn(self.assert_text.account_center_page_operation_done(), save_status, "保存成功")
            self.driver.wait()

        csv_file.close()
Ejemplo n.º 2
0
class TestCase09AccountCenterVisuEditAndDel(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriverServer()
        self.base_url = self.driver.base_url
        self.base_page = BasePageServer(self.driver, self.base_url)
        self.login_page = LoginPage(self.driver, self.base_url)
        self.account_center_page_visual_account = AccountCenterVisualAccountPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPage(
            self.driver, self.base_url)
        self.account_center_page_read_csv = AccountCenterPageReadCsv()
        self.log_in_base = LogInBaseServer(self.driver, self.base_page)
        self.assert_text = AssertText()
        self.driver.set_window_max()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_account_center_visu_edit_and_del(self):
        '''通过csv测试虚拟账户管理-编辑、删除功能'''
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录
        self.log_in_base.log_in()
        self.account_center_page_navi_bar.click_account_center_button()
        # 进入虚拟账户管理
        self.account_center_page_visual_account.enter_visual_account()
        csv_file = self.account_center_page_read_csv.read_csv(
            'add_visual_account.csv')
        csv_data = csv.reader(csv_file)
        for row in csv_data:
            acc_to_add = {"account": row[0], "passwd": row[1]}
            # 添加虚拟账户
            self.account_center_page_visual_account.add_visual_account(
                acc_to_add["account"], acc_to_add["passwd"])
            # 取消添加
            self.account_center_page_visual_account.dis_save_add_info()
            self.driver.wait()

            # 编辑列表中的虚拟账户
            self.account_center_page_visual_account.edit_visu_account(
                acc_to_add["passwd"])
            # 验证是否保存成功
            save_status = self.account_center_page_visual_account.get_save_status(
            )
            self.assertIn(
                self.assert_text.account_center_page_operation_done(),
                save_status, "保存成功")
            self.account_center_page_visual_account.dis_edit()
            self.driver.wait(1)

            # 删除列表中的虚拟账户
            self.account_center_page_visual_account.del_visu_account()

            # 验证是否操作成功
            save_status = self.account_center_page_visual_account.get_save_status(
            )
            self.assertIn(
                self.assert_text.account_center_page_operation_done(),
                save_status, "操作成功")
            self.driver.wait()
        csv_file.close()
Ejemplo n.º 3
0
class TestCase58CustManageAddAcc(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriverServer()
        self.base_url = self.driver.base_url
        self.base_page = BasePageServer(self.driver, self.base_url)
        self.login_page = LoginPage(self.driver, self.base_url)
        self.cust_manage_basic_info_and_add_cust_page = CustManageBasicInfoAndAddCustPage(
            self.driver, self.base_url)
        self.cust_manage_cust_list_page = CustManageCustListPage(
            self.driver, self.base_url)
        self.cust_manage_my_dev_page = CustManageMyDevPage(
            self.driver, self.base_url)
        self.cust_manage_lower_account_page = CustManageLowerAccountPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPage(
            self.driver, self.base_url)
        self.assert_text2 = AssertText2()
        self.search_sql = SearchSql()
        self.driver.set_window_max()
        self.log_in_base = LogInBaseServer(self.driver, self.base_url)
        self.cust_manage_page_read_csv = CustManagePageReadCsv()
        self.connect_sql = ConnectSql()
        self.assert_text = AssertText()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_cust_manage_add_acc(self):
        '''测试客户管理-新增用户'''

        # 打开途强在线首页-登录页
        self.base_page.open_page()

        # 登录
        self.log_in_base.log_in()

        # 进入客户管理页面
        self.cust_manage_basic_info_and_add_cust_page.enter_cust_manage()

        self.cust_manage_basic_info_and_add_cust_page.add_acc()
        self.cust_manage_basic_info_and_add_cust_page.close_add_account()

        csv_file = self.cust_manage_page_read_csv.read_csv('acc_add.csv')
        csv_data = csv.reader(csv_file)

        for row in csv_data:
            add_info = {
                "keyword": row[0],
                "acc_type": row[1],
                "acc_name": row[2],
                "account": row[3],
                "passwd": row[4],
                "phone": row[5],
                "email": row[6],
                "conn": row[7],
                "com": row[8],
                "search_user": row[9]
            }

            # 左侧客户列表搜索并选中唯一客户
            self.cust_manage_cust_list_page.acc_exact_search(
                add_info["keyword"])

            # 点击新增用户
            self.cust_manage_basic_info_and_add_cust_page.add_acc()
            sleep(2)

            # 验证所选中的上级用户类型来显示可创建的下级类型
            user_list = add_info["search_user"].split("/")
            for type in user_list:
                self.cust_manage_basic_info_and_add_cust_page.acc_search(type)
                type_list = self.cust_manage_basic_info_and_add_cust_page.get_acc_user_type_list(
                )
                sql_data = self.search_sql.search_current_account_data(type)
                user_type = self.assert_text.log_in_page_account_type(
                    sql_data[2])
                print(user_type)

                if user_type == "销售":
                    self.assertEqual(3, type_list["length"])
                    self.assertIn(
                        self.assert_text.log_in_page_account_type(11),
                        type_list["sale"])
                    self.assertIn(self.assert_text.log_in_page_account_type(8),
                                  type_list["distributor"])
                    self.assertIn(self.assert_text.log_in_page_account_type(9),
                                  type_list["user"])

                elif user_type == "代理商":
                    self.assertEqual(2, type_list["length"])
                    self.assertIn(self.assert_text.log_in_page_account_type(8),
                                  type_list["distributor"])
                    self.assertIn(self.assert_text.log_in_page_account_type(9),
                                  type_list["user"])

                elif user_type == "用户":
                    self.assertNotEqual(1, type_list["length"])
                    #self.assertIn(self.assert_text.log_in_page_account_type(9),type_list["user"])
                sleep(1)
            #添加用户类型获取提示
            self.cust_manage_basic_info_and_add_cust_page.acc_search(
                "yonghu222")
            sleep(2)
            self.cust_manage_basic_info_and_add_cust_page.locate_to_iframe()
            # status = self.cust_manage_lower_account_page.edit_info_save_status()
            self.driver.default_frame()
            # self.assertEqual(self.assert_text2.cust_manage_add_user_type_prompt(), status, "提示显示不一致")

            # 右侧搜索栏中搜索并选中作为上级用户
            self.cust_manage_basic_info_and_add_cust_page.acc_search(
                add_info["keyword"])
            # 选择客户类型
            self.cust_manage_basic_info_and_add_cust_page.locate_to_iframe()
            self.cust_manage_basic_info_and_add_cust_page.acc_type_choose(
                add_info["acc_type"])
            # 编辑用户输入框信息
            self.cust_manage_basic_info_and_add_cust_page.add_acc_input_info_edit(
                add_info["acc_name"], add_info["account"], add_info["passwd"],
                add_info["phone"], add_info["email"], add_info["conn"],
                add_info["com"])
            # 修改用户登录权限
            self.cust_manage_basic_info_and_add_cust_page.acc_login_limit_modi(
            )
            self.driver.default_frame()
            self.cust_manage_basic_info_and_add_cust_page.acc_add_save()

            # 获取保存操作状态
            status = self.cust_manage_basic_info_and_add_cust_page.acc_info_save_status(
            )
            # 验证是否操作成功
            self.assertIn(
                self.assert_text.account_center_page_operation_done(), status,
                "操作失败")

            # 搜索新增客户
            sleep(4)
            self.cust_manage_lower_account_page.input_search_info(
                add_info["account"])

            # 搜索
            self.cust_manage_lower_account_page.click_search_btn()

            # 删除该新增客户
            self.cust_manage_lower_account_page.delete_acc()

            # 确定删除
            self.cust_manage_lower_account_page.delete_acc_ensure()

            # 获取删除操作状态
            del_status = self.cust_manage_lower_account_page.get_del_status()

            # 验证是否操作成功
            self.assertIn(
                self.assert_text.account_center_page_operation_done(),
                del_status, "操作失败")

        csv_file.close()
Ejemplo n.º 4
0
class TestCase7408171CustManagelResetPasswordVerify(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriverServer()
        self.base_url = self.driver.base_url
        self.base_page = BasePageServer(self.driver, self.base_url)
        self.cust_manage_basic_info_and_add_cust_page = CustManageBasicInfoAndAddCustPage(
            self.driver, self.base_url)
        self.cust_manage_lower_account_page = CustManageLowerAccountPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPage(
            self.driver, self.base_url)
        self.assert_text2 = AssertText2()
        self.driver.set_window_max()
        self.log_in_base = LogInBaseServer(self.driver, self.base_url)
        self.assert_text = AssertText()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_cancel_and_ascertain_reset_password(self):
        '''客户管理-取消和确定重置密码操作'''
        account = ["xin_121313"]

        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录
        self.log_in_base.log_in()
        self.driver.wait(1)
        # 进入客户管理页面
        self.cust_manage_basic_info_and_add_cust_page.enter_cust_manage()
        # 搜索账号
        self.cust_manage_lower_account_page.input_search_info(account[0])
        self.cust_manage_lower_account_page.click_search_btn()
        self.assertEqual(
            account[0],
            self.cust_manage_lower_account_page.get_search_result_account(),
            "搜索结果账号不一致")
        # 取消重置密码
        self.cust_manage_lower_account_page.click_reset_passwd_dismiss()

        # 取消重置密码后的验证
        self.log_in_base.click_account_center_button()
        sleep(2)
        self.account_center_page_navi_bar.usr_logout()
        self.log_in_base.log_in_with_csv(account[0], "jimi123")
        hello_usr = self.account_center_page_navi_bar.hello_user_account()
        self.assertIn(account[0], hello_usr, "登录成功后招呼栏账户名显示错误")
        sleep(1)
        self.account_center_page_navi_bar.usr_logout()

        #再次登录,重置密码
        self.log_in_base.log_in()
        self.driver.wait(1)
        # 进入客户管理页面
        self.cust_manage_basic_info_and_add_cust_page.enter_cust_manage()
        self.cust_manage_lower_account_page.input_search_info(account[0])
        self.cust_manage_lower_account_page.click_search_btn()
        # 点击单个用户的重置密码
        self.cust_manage_lower_account_page.acc_reset_passwd()

        # 获取重置密码弹框文本内容
        text = self.cust_manage_lower_account_page.reset_passwd_content()
        hint_password = text.split(":")[2]
        # 验证重密码是否正确显示
        self.assertEqual("888888", hint_password, "弹框中的重置密码显示的不是888888")

        # 确定重置密码
        self.cust_manage_lower_account_page.reset_passwd_ensure()
        # 获取重置状态
        reset_status = self.cust_manage_lower_account_page.reset_passwd_content(
        )
        # 验证操作状态是否成功
        self.assertIn(self.assert_text.account_center_page_operation_done(),
                      reset_status, "操作失败")
        # 退出登录
        sleep(1)
        self.log_in_base.click_account_center_button()
        sleep(2)
        self.account_center_page_navi_bar.usr_logout()

        # 修改用户的默认密码
        self.log_in_base.log_in_with_csv(account[0], hint_password)
        sleep(2)
        # 修改用户默认密码(jimi123)
        self.cust_manage_basic_info_and_add_cust_page.user_default_password_edit(
            "jimi123")
        sleep(2)
        # 获取密码修改成功
        self.driver.click_element("x,/html/body/div[16]/div[3]/a")
        # status = self.cust_manage_basic_info_and_add_cust_page.user_default_password_edit_prompt()
        # self.assertIn(self.assert_text2.home_page_edit_password_success(), status, "修改密码失败!")
        sleep(2)
        self.assertEqual(self.base_url + "/", self.driver.get_current_url(),
                         "修改默认密码后,没有返回到登录页")
class TestCase405CustomerManagementAddUserCommandLimit(unittest.TestCase):
    # 测试客户管理-新增用户-验证指令权限
    def setUp(self):
        self.driver = AutomateDriverServer()
        self.base_url = self.driver.base_url
        self.base_page = BasePageServer(self.driver, self.base_url)
        self.login_page = LoginPage(self.driver, self.base_url)
        self.cust_manage_basic_info_and_add_cust_page = CustManageBasicInfoAndAddCustPage(self.driver, self.base_url)
        self.cust_manage_lower_account_page = CustManageLowerAccountPage(self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPage(self.driver, self.base_url)
        self.log_in_base = LogInBaseServer(self.driver, self.base_url)
        self.cust_manage_page_read_csv = CustManagePageReadCsv()
        self.assert_text = AssertText()
        self.assert_text2 = AssertText2()
        self.driver.set_window_max()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.close_window()
        self.driver.quit_browser()

    def test_add_user_command_limit_verify(self):
        '''测试客户管理-指令权限验证'''

        self.base_page.open_page()

        csv_file = self.cust_manage_page_read_csv.read_csv('add_user_command_limit_data.csv')
        csv_data = csv.reader(csv_file)
        for row in csv_data:
            info = {
                "keyword": row[0],
                "type": row[1],
                "name": row[2],
                "account": row[3],
                "passwd": row[4],
                "phone": row[5],
                "email": row[6],
                "conn": row[7],
                "com": row[8],
                "command": row[9],
                "working_mode": row[10]
            }

            # 登录
            self.log_in_base.log_in()

            # 进入客户管理页面
            current_handle = self.driver.get_current_window_handle()
            self.cust_manage_basic_info_and_add_cust_page.enter_cust_manage()
            sleep(1)
            self.base_page.change_windows_handle(current_handle)

            self.cust_manage_basic_info_and_add_cust_page.add_acc()
            self.cust_manage_basic_info_and_add_cust_page.close_add_account()

            self.cust_manage_basic_info_and_add_cust_page.add_acc()
            self.cust_manage_basic_info_and_add_cust_page.locate_to_iframe()
            self.cust_manage_basic_info_and_add_cust_page.add_acc_input_info_edit(info["name"], info["account"],
                                                                                  info["passwd"],
                                                                                  info["phone"], info["email"],
                                                                                  info["conn"], info["com"])
            # 是或否批量下发指令 和批量下发工作模式
            command_status = self.cust_manage_basic_info_and_add_cust_page.setting_command_permissions(info["command"])
            working_mode_status = self.cust_manage_basic_info_and_add_cust_page.setting_working_mode_permissions(
                info["working_mode"])
            self.assertEqual(info["command"], str(command_status), "勾选状态与期望不一致")
            self.assertEqual(info["working_mode"], str(working_mode_status), "勾选状态与期望不一致")
            self.driver.default_frame()
            sleep(2)
            self.cust_manage_basic_info_and_add_cust_page.acc_add_save()
            sleep(1)
            # 退出登录
            self.account_center_page_navi_bar.usr_logout()

            self.log_in_base.log_in_with_csv(info["account"], info["passwd"])
            hello_usr = self.account_center_page_navi_bar.usr_info_account()
            self.assertIn(info["account"], hello_usr, "登录成功后招呼栏账户名显示错误")
            sleep(1)

            # 进入设备管理/指令管理页面,获取功能按钮
            current_handle_02 = self.driver.get_current_window_handle()
            self.cust_manage_basic_info_and_add_cust_page.click_dev_management_button()
            self.base_page.change_windows_handle(current_handle_02)

            facility_manage_data = self.cust_manage_basic_info_and_add_cust_page.get_facility_manage_page_function_button()
            sleep(3)
            # command_manage_data = self.cust_manage_basic_info_and_add_cust_page.get_command_page_module()

            # 获取中文,依次是:选中发送指令、本次查询全部发送指令、选中设置工作模式、本次查询全部设置工作模式
            # 工作模式模板管理, 下发工作模式任务管理, 下发工作模式管理, 下发指令任务管理, 下发指令管理
            send_command = self.assert_text2.dev_manage_select_send_command()
            all_send_command = self.assert_text2.dev_manage_select_all_send_command()
            working_mode = self.assert_text2.dev_manage_setting_working_mode()
            all_working_mode = self.assert_text2.dev_manage_setting_all_working_mode()
            template_manage = self.assert_text.command_manager_page_work_type_template_management()
            working_mode_task_manage = self.assert_text2.comm_manage_send_working_mode_task_manage()
            working_mode_manage = self.assert_text2.comm_manage_send_working_mode_manage()
            task_manage = self.assert_text2.comm_manage_command_task_manage()
            comm_manager = self.assert_text.command_manager_page_issued_command_manager()

            command_list = []
            working_mode_list = []
            # 循环设备管理页面的数据
            for b in facility_manage_data:
                # 选中发送指令 和 本次查询全部发送指令
                if send_command in b or all_send_command in b:
                    command_list.append(b)
                # 选中设置工作模式 和 本次查询全部设置工作模式
                elif working_mode in b or all_working_mode in b:
                    working_mode_list.append(b)

            # 循环指令管理页面的数据
            '''for c in command_manage_data:
                # 下发指令任务管理 和 下发指令管理
                if task_manage in c or comm_manager in c:
                    command_list.append(c)
                # 工作模式模板管理, 下发工作模式任务管理, 下发工作模式管理
                elif template_manage in c or working_mode_task_manage in c or working_mode_manage in c:
                    working_mode_list.append(c)'''

            print("指令", command_list)
            print("工作模式", working_mode_list)

            # 验证设备、指令管理页面功能按钮
            if command_status == True and working_mode_status == True:
                # 指令(设备页+指令管理页)
                self.assertEqual(send_command, command_list[0])
                self.assertEqual(all_send_command, command_list[1])
                self.assertEqual(task_manage, command_list[2])
                self.assertEqual(comm_manager, command_list[3])

                # 工作模式(设备页+指令管理页)
                self.assertEqual(working_mode, working_mode_list[0])
                self.assertEqual(all_working_mode, working_mode_list[1])
                self.assertEqual(template_manage, working_mode_list[2])
                self.assertEqual(working_mode_task_manage, working_mode_list[3])
                self.assertEqual(working_mode_manage, working_mode_list[4])

            elif command_status == False and working_mode_status == False:
                # self.assertEqual(comm_manager, command_list[0])
                self.assertEqual(0, len(working_mode_list))

            elif command_status == True and working_mode_status == False:
                self.assertEqual(send_command, command_list[0])
                self.assertEqual(all_send_command, command_list[1])
                self.assertEqual(task_manage, command_list[2])
                self.assertEqual(comm_manager, command_list[3])
                self.assertEqual(0, len(working_mode_list))

            elif command_status == False and working_mode_status == True:
                self.assertEqual(comm_manager, command_list[0])
                self.assertEqual(working_mode, working_mode_list[0])
                self.assertEqual(all_working_mode, working_mode_list[1])
                self.assertEqual(template_manage, working_mode_list[2])
                self.assertEqual(working_mode_task_manage, working_mode_list[3])
                self.assertEqual(working_mode_manage, working_mode_list[4])

            sleep(1)
            self.account_center_page_navi_bar.usr_logout()

            self.log_in_base.log_in()

            current_handle_01 = self.driver.get_current_window_handle()
            self.cust_manage_basic_info_and_add_cust_page.enter_cust_manage()
            self.base_page.change_windows_handle(current_handle_01)

            # 搜索新增客户
            self.cust_manage_lower_account_page.input_search_info(info["account"])
            # 搜索
            self.cust_manage_lower_account_page.click_search_btn()
            # 删除该新增客户
            self.cust_manage_lower_account_page.delete_acc()
            self.cust_manage_lower_account_page.delete_acc_ensure()
            # 获取删除操作状态
            del_status = self.cust_manage_lower_account_page.get_del_status()
            self.assertIn(self.assert_text.account_center_page_operation_done(), del_status, "操作失败")

            # 退出登录
            sleep(1)
            self.account_center_page_navi_bar.usr_logout()
        csv_file.close()
Ejemplo n.º 6
0
class TestCase01AccountCenterModifyInfo(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriverServer()
        self.base_url = self.driver.base_url
        self.base_page = BasePageServer(self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPage(self.driver, self.base_url)
        self.account_center_page_details = AccountCenterDetailsPage(self.driver, self.base_url)
        self.account_center_page_read_csv = AccountCenterPageReadCsv()
        self.log_in_base = LogInBaseServer(self.driver, self.base_url)
        self.assert_text = AssertText()
        self.driver.set_window_max()
        self.driver.clear_cookies()
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        sleep(1)
        # 登录账号
        self.log_in_base.log_in()

    def tearDown(self):
        self.driver.quit_browser()

    def test_account_center_modify_info(self):
        '''通过csv测试修改资料功能'''
        self.account_center_page_navi_bar.click_account_center_button()

        csv_file = self.account_center_page_read_csv.read_csv('user_to_modify_info.csv')
        csv_data = csv.reader(csv_file)
        for row in csv_data:
            user_to_modify_info = {
                "username": row[0],
                "phone": row[1],
                "email": row[2]
            }

            # 招呼栏修改资料
            save_status = self.account_center_page_navi_bar.modify_usr_info(user_to_modify_info["username"],
                                                                            user_to_modify_info["phone"],
                                                                            user_to_modify_info["email"])
            # 判断是否修改成功
            self.assertEqual(self.assert_text.account_center_page_operation_done(), save_status, "修改失败")

            #点击账户中心
            self.account_center_page_navi_bar.click_account_center_button()
            sleep(1)
            #获取详情中用户名跟电话

            phone = self.account_center_page_navi_bar.usr_info_phone()
            self.assertEqual(user_to_modify_info["phone"], phone, "电话号码不一致")
            break
        csv_file.close()

        # 点击关闭
        self.account_center_page_navi_bar.click_modify_usr_info()
        self.account_center_page_navi_bar.cancel_modify_user_info()

        # 点击取消
        self.account_center_page_navi_bar.click_modify_usr_info()
        self.account_center_page_navi_bar.close_modify_user_info()

        # 退出登录
        self.account_center_page_navi_bar.usr_logout()
class TestCase106GlobSearchAppDetailOperation(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.global_dev_search_page = GlobalDevSearchPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPages(
            self.driver, self.base_url)
        self.driver.set_window_max()
        self.global_account_search_page = GlobalAccountSearchPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.global_search_page_read_csv = GlobleSearchPageReadCsv()
        self.search_sql = SearchSql()
        self.assert_text = AssertText()
        self.driver.wait(1)
        self.connect_sql = ConnectSql()
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_case_global_search_app_detail_operation(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        self.log_in_base.log_in_jimitest()
        self.log_in_base.click_account_center_button()
        self.global_dev_search_page.click_easy_search()
        # 关闭
        self.global_dev_search_page.close_search()
        sleep(2)

        self.global_dev_search_page.click_easy_search()
        self.global_dev_search_page.swith_to_search_frame()
        self.global_dev_search_page.select_search_app_user()

        # 点击搜索
        # self.global_dev_search_page.click_search_button()
        # 点击详情
        self.global_dev_search_page.click_detail_in_app_user_search()

        # 点击控制台
        current_handle = self.driver.get_current_window_handle()
        self.global_dev_search_page.click_console_button_in_app_detail()
        all_handles = self.driver.get_all_window_handles()
        for handle in all_handles:
            if handle != current_handle:
                self.driver.switch_to_window(handle)

                self.assertEqual(self.base_url + '/console',
                                 self.driver.get_current_url())
                self.driver.close_current_page()
                sleep(2)
                self.driver.switch_to_window(current_handle)

        # 重置密码
        # 点击重置密码
        self.global_dev_search_page.swith_to_search_frame()
        self.global_dev_search_page.click_reset_password_button_in_app_detail()
        # 点击关闭
        self.global_dev_search_page.close_button()

        # 点击重置密码
        self.global_dev_search_page.click_reset_password_button_in_app_detail()
        # 点击关闭
        self.global_dev_search_page.cancel_button()

        # 点击重置密码
        self.global_dev_search_page.click_reset_password_button_in_app_detail()
        # 点击关闭
        self.global_dev_search_page.ensure_button()

        get_text = self.global_dev_search_page.get_text_after_succeed()
        self.assertEqual(self.assert_text.account_center_page_operation_done(),
                         get_text)

        # 获取app用户详情页面绑定的设备信息
        get_dev_name = self.global_dev_search_page.get_dev_name_in_app_detail()
        get_dev_imei = self.global_dev_search_page.get_dev_imei_in_app_detail()
        get_dev_type = self.global_dev_search_page.get_dev_type_in_app_detail()
        get_dev_active_time = self.global_dev_search_page.get_dev_active_time_in_app_detail(
        )
        get_dev_expire_time = self.global_dev_search_page.get_dev_expire_time_in_app_detail(
        )
        get_dev_bound_user = self.global_dev_search_page.get_dev_bound_user_in_app_detail(
        )
        self.driver.default_frame()
        # 点击设备的操作
        # 详情
        self.global_dev_search_page.click_dev_operation_detail_in_app_detail()

        # 获取点击设备详情后页面的数据
        dev_name = self.global_dev_search_page.get_dev_name_in_dev_detail()
        self.assertEqual(get_dev_name, dev_name)

        dev_imei = self.global_dev_search_page.get_dev_imei_in_dev_detail()
        self.assertEqual(get_dev_imei, dev_imei)

        dev_type = self.global_dev_search_page.get_dev_type_in_dev_detail()
        self.assertEqual(get_dev_type, dev_type)

        dev_active_time = self.global_dev_search_page.get_dev_active_time_in_dev_detail(
        )
        self.assertEqual(get_dev_active_time, dev_active_time)

        dev_expire_time = self.global_dev_search_page.get_dev_expire_time_in_dev_detail(
        )
        self.assertEqual(get_dev_expire_time, dev_expire_time)

        dev_bound_user = self.global_dev_search_page.get_dev_bound_user_in_dev_detail(
        )
        self.assertEqual(get_dev_bound_user, dev_bound_user)

        # 点击设备的轨迹回放、实时跟踪、查看告警
        self.global_dev_search_page.return_app_user_detail_list()

        # 点击轨迹回放
        current_handle = self.driver.get_current_window_handle()
        self.global_dev_search_page.click_track_replay_button_in_app_detail()
        all_handles = self.driver.get_all_window_handles()
        for handle in all_handles:
            if handle != current_handle:
                self.driver.switch_to_window(handle)
                self.assertEqual(
                    self.base_url + '/trackreplay/locus?imei=%s' % dev_imei,
                    self.driver.get_current_url())
                # 断言点击轨迹回放后的设备名称和 imei
                get_imei_in_replay = self.global_dev_search_page.get_imei_in_replay(
                )
                self.assertEqual(dev_imei, get_imei_in_replay)
                get_dev_name_in_replay = self.global_dev_search_page.get_dev_name_in_replay(
                )
                self.assertEqual(dev_name, get_dev_name_in_replay)
                self.driver.close_current_page()
                sleep(2)
                self.driver.switch_to_window(current_handle)

        # 点击实时跟踪
        current_handle = self.driver.get_current_window_handle()
        self.global_dev_search_page.click_track_preset_button_in_app_detail()
        all_handles = self.driver.get_all_window_handles()
        for handle in all_handles:
            if handle != current_handle:
                self.driver.switch_to_window(handle)
                self.assertEqual(
                    self.base_url +
                    '/trackpreset/tracking/%s?isTracking=0' % dev_imei,
                    self.driver.get_current_url())
                # 断言点击轨迹回放后的设备名称和 imei
                get_imei_in_track_preset = self.global_dev_search_page.get_imei_in_track_preset(
                )
                self.assertEqual(dev_imei, get_imei_in_track_preset)
                get_dev_name_in_track_preset = self.global_dev_search_page.get_dev_name_in_track_preset(
                )
                self.assertIn(dev_name, get_dev_name_in_track_preset)
                self.driver.close_current_page()
                sleep(2)
                self.driver.switch_to_window(current_handle)

        # 点击查看告警
        current_handle = self.driver.get_current_window_handle()
        self.global_dev_search_page.click_alarm_detail_button_in_app_detail()
        all_handles = self.driver.get_all_window_handles()
        for handle in all_handles:
            if handle != current_handle:
                self.driver.switch_to_window(handle)
                self.assertEqual(
                    self.base_url + '/deviceReport/statisticalReport',
                    self.driver.get_current_url())
                # 断言
                text = self.global_dev_search_page.get_text_after_click_alarm_detail(
                )
                self.assertEqual(
                    self.assert_text.account_center_page_alarm_details_text(),
                    text)
                self.driver.close_current_page()
                sleep(2)
                self.driver.switch_to_window(current_handle)
class TestCase404CustomerManagementAddAUserWebLimit(unittest.TestCase):
    # 测试客户管理-新增用户-验证web登陆权限
    def setUp(self):
        self.driver = AutomateDriverServer()
        self.base_url = self.driver.base_url
        self.base_page = BasePageServer(self.driver, self.base_url)
        self.login_page = LoginPage(self.driver, self.base_url)
        self.cust_manage_basic_info_and_add_cust_page = CustManageBasicInfoAndAddCustPage(
            self.driver, self.base_url)
        self.cust_manage_lower_account_page = CustManageLowerAccountPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBaseServer(self.driver, self.base_url)
        self.cust_manage_page_read_csv = CustManagePageReadCsv()
        self.assert_text = AssertText()
        self.assert_text2 = AssertText2()
        self.driver.set_window_max()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.close_window()
        self.driver.quit_browser()

    def test_add_user_web_limit_verify(self):
        '''测试客户管理-web权限验证'''

        self.base_page.open_page()

        csv_file = self.cust_manage_page_read_csv.read_csv(
            'add_user_web_limit_data.csv')
        csv_data = csv.reader(csv_file)
        for row in csv_data:
            info = {
                "keyword": row[0],
                "type": row[1],
                "name": row[2],
                "account": row[3],
                "passwd": row[4],
                "phone": row[5],
                "email": row[6],
                "conn": row[7],
                "com": row[8],
                "web_setting": row[9],
                "app_setting": row[10]
            }

            # 登录
            self.log_in_base.log_in()

            # 进入客户管理页面
            current_handle = self.driver.get_current_window_handle()
            self.cust_manage_basic_info_and_add_cust_page.enter_cust_manage()
            self.base_page.change_windows_handle(current_handle)

            self.cust_manage_basic_info_and_add_cust_page.add_acc()
            self.cust_manage_basic_info_and_add_cust_page.close_add_account()

            self.cust_manage_basic_info_and_add_cust_page.add_acc()
            self.cust_manage_basic_info_and_add_cust_page.locate_to_iframe()
            self.cust_manage_basic_info_and_add_cust_page.add_acc_input_info_edit(
                info["name"], info["account"], info["passwd"], info["phone"],
                info["email"], info["conn"], info["com"])
            # 是或否勾选web和app登录权限
            web_status = self.cust_manage_basic_info_and_add_cust_page.setting_web_login_permissions(
                info["web_setting"])
            app_status = self.cust_manage_basic_info_and_add_cust_page.setting_app_login_permissions(
                info["app_setting"])
            self.assertEqual(info["web_setting"], str(web_status),
                             "勾选状态与期望不一致")
            self.assertEqual(info["app_setting"], str(app_status),
                             "勾选状态与期望不一致")
            self.driver.default_frame()
            sleep(2)
            self.cust_manage_basic_info_and_add_cust_page.acc_add_save()
            sleep(1)

            self.account_center_page_navi_bar.usr_logout()

            # 没有web登录权限验证
            if web_status == False:
                self.log_in_base.log_in_with_csv(info["account"],
                                                 info["passwd"])
                self.assertEqual(self.assert_text2.login_no_permissions(),
                                 self.login_page.get_exception_text(),
                                 "没有获取到没有权限登录的提示")
            # 有web登录权限验证
            elif web_status == True:
                self.log_in_base.log_in_with_csv(info["account"],
                                                 info["passwd"])
                sleep(2)
                hello_usr = self.account_center_page_navi_bar.usr_info_account(
                )
                self.assertIn(info["account"], hello_usr, "登录成功后招呼栏账户名显示错误")
                sleep(1)
                self.log_in_base.click_account_center_button()
                self.account_center_page_navi_bar.usr_logout()

            self.log_in_base.log_in()

            current_handle_01 = self.driver.get_current_window_handle()
            self.cust_manage_basic_info_and_add_cust_page.enter_cust_manage()
            self.base_page.change_windows_handle(current_handle_01)

            # 搜索新增客户
            self.cust_manage_lower_account_page.input_search_info(
                info["account"])
            # 搜索
            self.cust_manage_lower_account_page.click_search_btn()
            # 删除该新增客户
            self.cust_manage_lower_account_page.delete_acc()
            self.cust_manage_lower_account_page.delete_acc_ensure()
            # 获取删除操作状态
            del_status = self.cust_manage_lower_account_page.get_del_status()
            self.assertIn(
                self.assert_text.account_center_page_operation_done(),
                del_status, "操作失败")

            # 退出登录
            sleep(1)
            self.account_center_page_navi_bar.usr_logout()
        csv_file.close()
Ejemplo n.º 9
0
class TestCase06AccountCenterMsgSetRead(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriverServer(choose='chrome')
        self.base_url = self.driver.base_url
        self.base_page = BasePageServer(self.driver, self.base_url)
        self.login_page = LoginPage(self.driver, self.base_url)
        self.account_center_page_msg_center = AccountCenterMsgCenterPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBaseServer(self.driver, self.base_url)
        self.assert_text = AssertText()
        self.driver.set_window_max()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_account_center_msg_set_read(self):
        '''通过csv测试消息中心-设置消息为已读功能'''
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录
        self.log_in_base.log_in()
        self.account_center_page_navi_bar.click_account_center_button()
        # 进入消息中心
        self.account_center_page_msg_center.enter_msg_center()
        self.driver.wait(8)
        # 进入iframe
        # self.account_center_page_msg_center.message_center_iframe()
        # 获取消息中心title
        msg_center_title = self.account_center_page_msg_center.get_msg_center_title(
        )

        # 验证消息中心title是否正确显示
        self.assertIn(
            self.assert_text.account_center_page_message_center_text(),
            msg_center_title, "消息中心title有误!")
        # 退出iframe
        # self.driver.default_frame()

        # 获取左侧栏目-消息中心-x条未读
        unread_msg_num = int(
            self.account_center_page_msg_center.get_unread_msg_num())

        if unread_msg_num > 0:
            self.account_center_page_msg_center.message_center_iframe()
            # 设置搜索条件-消息状态为“未读”,搜索出结果,统计当前未读消息总数
            self.account_center_page_msg_center.set_search_status_unread()
            self.driver.wait(4)

            # 判断消息中心左侧栏目的未读消息与搜索结果的未读消息数量是否一致
            count_unread_msg_num = self.account_center_page_msg_center.get_total_unread_logs_num(
            )
            self.assertEqual(unread_msg_num, count_unread_msg_num,
                             "消息中心左侧栏目的未读消息与搜索结果的未读消息数量不一致")

            # 根据未读消息总数,将所有未读消息设为已读
            if 0 < count_unread_msg_num <= 10:
                # 当前页全选
                self.account_center_page_msg_center.select_current_page_all_msg(
                )

                # 获取当前页所有消息的复选框
                select_msg_list = self.account_center_page_msg_center.get_current_page_all_msg_checkbox(
                )
                print(select_msg_list)
                msg_list_len = len(select_msg_list)
                print(msg_list_len)
                # 将选中的标为已读
                self.account_center_page_msg_center.set_current_page_status_read(
                )

                # 验证操作状态是否成功
                self.driver.wait()
                status_text = self.account_center_page_msg_center.get_status_text(
                )

                self.assertIn(
                    self.assert_text.account_center_page_operation_done(),
                    status_text, "操作失败")
                self.driver.wait()

                # 设置搜索条件-消息状态为“未读”,判断未读消息列表是否为空
                self.account_center_page_msg_center.set_search_status_unread()
                no_msg_text = self.account_center_page_msg_center.get_no_msg_text(
                )
                self.driver.wait()
                self.assertIn(
                    self.assert_text.account_center_page_no_data_text(),
                    no_msg_text, "未读消息列表未清空")

            else:

                # 将所有消息全部标为已读
                self.account_center_page_msg_center.set_all_msg_status_read()

                # 验证操作状态是否成功
                self.driver.wait(1)

                status_text = self.account_center_page_msg_center.get_status_text(
                )

                self.assertIn(
                    self.assert_text.account_center_page_operation_done(),
                    status_text, "操作失败")

                # 设置搜索条件-消息状态为“未读”,判断未读消息列表是否为空
                self.account_center_page_msg_center.set_search_status_unread()
                no_msg_text = self.account_center_page_msg_center.get_no_msg_text(
                )
                self.assertIn(
                    self.assert_text.account_center_page_no_data_text(),
                    no_msg_text, "未读消息列表未清空")
                # 退出登录
                self.account_center_page_navi_bar.usr_logout()
        else:
            print("当前未读消息共:" + str(unread_msg_num) + "条!")

        self.driver.default_frame()
Ejemplo n.º 10
0
class TestCase135SafeAreaExpertion(unittest.TestCase):
    """ web_autotest账号,选择单个区域右侧编辑操作 """

    # author:邓肖斌

    def setUp(self):
        self.driver = AutomateDriverServer(choose='chrome')
        self.base_url = self.driver.base_url
        self.base_page = BasePageServer(self.driver, self.base_url)
        self.log_in_base = LogInBaseServer(self.driver, self.base_url)
        self.safe_area_page = SafeAreaPage(self.driver, self.base_url)

        self.base_page.open_page()
        self.base_page.click_chinese_button()
        self.assert_text = AssertText()
        self.driver.set_window_max()
        self.log_in_base.log_in()
        self.safe_area_page.click_control_after_click_safe_area()

    def tearDown(self):
        self.driver.quit_browser()

    def test_case_safe_area_expertion(self):
        # 断言url
        expect_url = self.base_url + "/safearea/geozonemap?flag=0"
        self.assertEqual(expect_url, self.driver.get_current_url())

        # 点击删除按钮
        self.safe_area_page.click_delete_button()
        text = self.safe_area_page.get_text_after_click_delete()
        self.assertEqual(
            self.assert_text.safe_area_page_choose_delete_content(), text)
        self.safe_area_page.click_ensure()

        self.safe_area_page.click_delete_button()
        text = self.safe_area_page.get_text_after_click_delete()
        self.assertEqual(
            self.assert_text.safe_area_page_choose_delete_content(), text)
        self.safe_area_page.click_close()

        # 点击新建
        self.safe_area_page.click_creat_map()
        # 获取文本
        text = self.safe_area_page.get_text_after_create_map()
        self.assertEqual(self.assert_text.safe_area_page_map_text(), text)

        # 选择黑车库操作
        self.safe_area_page.click_select_black_address_button()
        # 获取列表第一个的名称
        black_address_name = self.safe_area_page.get_first_list_black_address_name(
        )
        # 点击编辑
        self.safe_area_page.click_edit_black_address()
        # 获取打开编辑之后的黑车地址库名字
        name = self.safe_area_page.get_black_address_after_click_edit()
        self.assertEqual(black_address_name, name)
        # 验证黑车库的按钮是否被选中
        black_address_value = self.safe_area_page.get_black_address_input_value(
        )
        self.assertEqual(True, black_address_value)
        # 点击取消
        self.safe_area_page.click_cancel_edit()

        # 点击编辑
        self.safe_area_page.click_edit_black_address()
        # 获取打开编辑之后的黑车地址库名字
        name = self.safe_area_page.get_black_address_after_click_edit()
        self.assertEqual(black_address_name, name)
        # 验证黑车库的按钮是否被选中
        black_address_value = self.safe_area_page.get_black_address_input_value(
        )
        self.assertEqual(True, black_address_value)
        # 点击保存
        self.safe_area_page.click_ensure()
        # 获取保存后的文本
        text = self.safe_area_page.get_text_after_ensure()
        print(self.assert_text.account_center_page_operation_done())
        print(text)
        self.assertIn(self.assert_text.account_center_page_operation_done(),
                      text)

        # 选择围栏编辑
        self.safe_area_page.click_select_fence_button()
        # 获取第一个围栏的名称
        fence_name = self.safe_area_page.get_first_list_fence_name()
        print('1 = %s' % fence_name)

        # 点击编辑
        self.safe_area_page.click_edit_fence()
        # 获取打开编辑之后的围栏名称
        names = self.safe_area_page.get_fence_name_after_edit()
        print('2 = %s' % names)
        self.assertEqual(fence_name, names)
        # 点击取消
        self.safe_area_page.click_cancel_edit()

        # 点击编辑
        self.safe_area_page.click_edit_fence()
        # 获取打开编辑之后的围栏名称
        names = self.safe_area_page.get_fence_name_after_edit()
        self.assertEqual(fence_name, names)
        # 点击取消
        self.safe_area_page.click_ensure()
        # 获取保存后的文本
        text = self.safe_area_page.get_text_after_ensure()
        self.assertIn(self.assert_text.account_center_page_operation_done(),
                      text)
class TestCase116UserSearchModifyWebDevEditAuthority(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriver(choose='firefox')
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.global_dev_search_page = GlobalDevSearchPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPages(
            self.driver, self.base_url)
        self.driver.set_window_max()
        self.global_account_search_page = GlobalAccountSearchPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.global_search_page_read_csv = GlobleSearchPageReadCsv()
        self.search_sql = SearchSql()
        self.driver.wait(1)
        self.connect_sql = ConnectSql()
        self.assert_text = AssertText()
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_case_user_search_modify_web_dev_edit_authority(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        self.log_in_base.log_in()
        self.log_in_base.click_account_center_button()
        sleep(4)
        self.global_dev_search_page.click_easy_search()
        # 关闭
        self.global_dev_search_page.close_search()
        sleep(2)

        self.global_dev_search_page.click_easy_search()

        # 选择用户搜索
        self.global_dev_search_page.click_dev_search()
        self.global_dev_search_page.click_search_buttons()

        # 获取列表中第二个用户的账号
        self.global_dev_search_page.swith_to_search_frame()
        get_second_user_account = self.global_account_search_page.get_second_user_account_after_search_user(
        )
        # 点击详情
        self.global_account_search_page.click_user_detail_button()
        # 点击用户信息
        self.global_account_search_page.click_user_info_in_user_detail()

        # 获取用户信息页面登录账号名字
        current_account = self.global_account_search_page.get_current_account_in_user_detail(
        )
        self.assertEqual(get_second_user_account, current_account)

        # 获取各个权限input的select属性
        web_login_authority = self.global_account_search_page.get_web_login_authority_input_select_in_user_detail(
        )
        app_login_authority = self.global_account_search_page.get_app_login_authorith_input_select_in_user_detail(
        )

        batch_issued_command_authority = self.global_account_search_page.batch_issued_command_authority_in_user_detail(
        )
        batch_issued_work_type_authority = self.global_account_search_page.batch_issued_work_type_authority_in_user_detail(
        )

        web_modify_authority = self.global_account_search_page.get_web_modify_authority_in_user_detail(
        )
        app_modify_authority = self.global_account_search_page.get_app_modify_authority_in_user_detail(
        )

        if web_modify_authority == True:
            # 点击web修改设备的权限
            self.global_account_search_page.click_web_modify_dev_authority_in_user_detail(
            )
            # 点击保存
            self.global_account_search_page.click_ensuer_button_in_user_detail(
            )
            # 点击关闭
            self.driver.default_frame()
            self.global_account_search_page.click_close_button()

            # 退出登录
            self.global_account_search_page.logout()

            # 登录刚刚修改过的账号
            self.global_account_search_page.log_in_user(
                get_second_user_account, 'jimi123')
            # 进入设备管理页面
            self.global_account_search_page.click_dev_manage_page()
            sleep(2)
            # 点击编辑设备
            self.global_account_search_page.click_edit_dev_in_dev_manage_page()
            # 点击保存
            self.global_account_search_page.click_ensuer_button()
            # 获取提示语
            text = self.global_account_search_page.get_no_authority_text()
            # self.assertIn(self.assert_text.no_authority_text(), text)

            # 关闭设备编辑页面
            self.global_account_search_page.close_dev_edit()
            # 退出登录的账号
            self.global_account_search_page.click_account_manage_page()
            self.global_account_search_page.logout()
            # 登录web_autotest
            self.log_in_base.log_in()
            self.log_in_base.click_account_center_button()
            self.global_dev_search_page.click_easy_search()
            # 关闭
            self.global_dev_search_page.close_search()
            sleep(2)
            self.global_dev_search_page.click_easy_search()
            # 选择用户搜索
            self.global_dev_search_page.click_dev_search()
            self.global_dev_search_page.click_search_buttons()
            # 点击详情
            self.global_dev_search_page.swith_to_search_frame()
            self.global_account_search_page.click_user_detail_button()
            # 点击用户信息
            self.global_account_search_page.click_user_info_in_user_detail()

            self.global_account_search_page.click_web_modify_dev_authority_in_user_detail(
            )
            # 点击保存
            self.global_account_search_page.click_ensuer_button_in_user_detail(
            )
            # 点击关闭
            self.driver.default_frame()
            self.global_account_search_page.click_close_button()

            # 退出登录
            self.global_account_search_page.logout()

            # 登录刚刚修改过的账号
            self.global_account_search_page.log_in_user(
                get_second_user_account, 'jimi123')
            # 进入设备管理页面
            self.global_account_search_page.click_dev_manage_page()
            # 点击编辑设备
            self.global_account_search_page.click_edit_dev_in_dev_manage_page()
            # 点击保存
            self.global_account_search_page.click_ensuer_button()
            # 获取提示语
            text = self.global_account_search_page.get_authority_text()
            self.assertIn(
                self.assert_text.account_center_page_operation_done(), text)

        elif web_modify_authority == False:
            # 点击web修改设备的权限
            self.global_account_search_page.click_web_modify_dev_authority_in_user_detail(
            )
            # 点击保存
            self.global_account_search_page.click_ensuer_button_in_user_detail(
            )
            # 点击关闭
            self.driver.default_frame()
            self.global_account_search_page.click_close_button()

            # 退出登录
            self.global_account_search_page.logout()

            # 登录刚刚修改过的账号
            self.global_account_search_page.log_in_user(
                get_second_user_account, 'jimi123')
            # 进入设备管理页面
            self.global_account_search_page.click_dev_manage_page()
            # 点击编辑设备
            self.global_account_search_page.click_edit_dev_in_dev_manage_page()
            # 点击保存
            self.global_account_search_page.click_ensuer_button()
            # 获取提示语
            text = self.global_account_search_page.get_authority_text()
            self.assertIn(
                self.assert_text.account_center_page_operation_done(), text)

            # 关闭设备编辑页面
            self.global_account_search_page.close_dev_edit()
            # 退出登录的账号
            self.global_account_search_page.click_account_manage_page()
            sleep(2)
            self.global_account_search_page.logout()
            # 登录web_autotest
            self.log_in_base.log_in()
            self.log_in_base.click_account_center_button()
            self.global_dev_search_page.click_easy_search()
            # 关闭
            self.global_dev_search_page.close_search()
            sleep(2)
            self.global_dev_search_page.click_easy_search()
            # 选择用户搜索
            self.global_dev_search_page.click_dev_search()
            self.global_dev_search_page.click_search_buttons()
            # 点击详情
            self.global_dev_search_page.swith_to_search_frame()
            self.global_account_search_page.click_user_detail_button()
            # 点击用户信息
            self.global_account_search_page.click_user_info_in_user_detail()

            self.global_account_search_page.click_web_modify_dev_authority_in_user_detail(
            )
            # 点击保存
            self.global_account_search_page.click_ensuer_button_in_user_detail(
            )
            # 点击关闭
            self.driver.default_frame()
            self.global_account_search_page.click_close_button()

            # 退出登录
            self.global_account_search_page.logout()

            # 登录刚刚修改过的账号
            self.global_account_search_page.log_in_user(
                get_second_user_account, 'jimi123')
            # 进入设备管理页面
            self.global_account_search_page.click_dev_manage_page()
            # 点击编辑设备
            self.global_account_search_page.click_edit_dev_in_dev_manage_page()
            # 点击保存
            self.global_account_search_page.click_ensuer_button()
            # 获取提示语
            text = self.global_account_search_page.get_no_authority_text()
class TestCase60CustManageLowerAccountEdit(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriverServer(choose='chrome')
        self.base_url = self.driver.base_url
        self.base_page = BasePageServer(self.driver, self.base_url)
        self.login_page = LoginPage(self.driver, self.base_url)
        self.cust_manage_basic_info_and_add_cust_page = CustManageBasicInfoAndAddCustPage(self.driver, self.base_url)
        self.cust_manage_cust_list_page = CustManageCustListPage(self.driver, self.base_url)
        self.cust_manage_my_dev_page = CustManageMyDevPage(self.driver, self.base_url)
        self.cust_manage_lower_account_page = CustManageLowerAccountPage(self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPage(self.driver, self.base_url)
        self.driver.set_window_max()
        self.log_in_base = LogInBaseServer(self.driver, self.base_url)
        self.cust_manage_page_read_csv = CustManagePageReadCsv()
        self.assert_text = AssertText()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_cust_manage_lower_account_edit(self):
        '''客户管理-下级客户-单个客户编辑'''

        # 打开途强在线首页-登录页
        self.base_page.open_page()

        # 登录
        self.log_in_base.log_in()
        self.driver.wait(1)
        # 进入客户管理页面
        self.cust_manage_basic_info_and_add_cust_page.enter_cust_manage()

        csv_file = self.cust_manage_page_read_csv.read_csv('lower_acc_edit.csv')
        csv_data = csv.reader(csv_file)

        for row in csv_data:
            edit_info = {
                "acc_type": row[0],
                "acc_name": row[1],
                "phone": row[2],
                "email": row[3],
                "conn": row[4],
                "com": row[5]
            }
            sleep(2)
            # 取消
            self.cust_manage_lower_account_page.edit_info_cancel()
            # 点击单个用户的编辑
            self.cust_manage_lower_account_page.click_acc_edit()

            # 选择客户类型
            sleep(3)
            self.cust_manage_basic_info_and_add_cust_page.locate_to_iframe()
            self.cust_manage_lower_account_page.acc_type_choose(edit_info["acc_type"])
            # 编辑信息
            self.cust_manage_lower_account_page.edit_acc_input_info_edit(edit_info["acc_name"],
                                                                         edit_info["phone"],
                                                                         edit_info["email"],
                                                                         edit_info["conn"],
                                                                         edit_info["com"])

            # 保存
            self.driver.default_frame()
            self.cust_manage_lower_account_page.edit_info_save()

            # 获取操作状态
            status = self.cust_manage_lower_account_page.edit_info_save_status()

            # 验证是否操作成功
            self.assertIn(self.assert_text.account_center_page_operation_done(), status, "操作失败")
class TestCase400830AccountCenterFastSaleEditAddFaility(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriverServer(choose='chrome')
        self.base_url = self.driver.base_url
        self.base_page = BasePageServer(self.driver, self.base_url)
        self.login_page = LoginPage(self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPage(
            self.driver, self.base_url)
        self.account_center_page_details = AccountCenterDetailsPage(
            self.driver, self.base_url)
        self.assert_text = AssertText()
        self.driver.set_window_max()
        self.account_center_page_read_csv = AccountCenterPageReadCsv()
        self.log_in_base = LogInBaseServer(self.driver, self.base_page)
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_fast_sale_edit_add_faility_succeed(self):
        '''通过csv测试账户详情-快捷销售-编辑设备名称和设备sim卡号'''
        csv_file = self.account_center_page_read_csv.read_csv(
            'fast_sale_edit_dev_data.csv')
        csv_data = csv.reader(csv_file)

        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录账号
        self.log_in_base.log_in_with_csv("dzltest", "jimi123")
        self.driver.wait(1)
        self.account_center_page_navi_bar.click_account_center_button()

        for row in csv_data:
            data = {
                "account": row[0],
                "device_imei": row[1],
                "selected_dev": row[2],
                "dev_name": row[3],
                "sim": row[4],
                "old_dev_name": row[5],
                "old_sim": row[6]
            }
            # 进入快捷销售页面
            self.account_center_page_details.account_center_iframe()
            self.account_center_page_details.fast_sales()

            # 查找账户
            self.account_center_page_details.fast_sales_find_account(
                data["account"])

            # 输入设备imei精确查找设备并添加
            self.account_center_page_details.fast_sales_find_and_add_device(
                data["device_imei"])
            self.driver.default_frame()
            self.driver.wait()
            # 关闭消息提示框
            try:
                self.account_center_page_details.click_prompt_close()
            except:
                print("没有消息弹框提示")

            # self.account_center_page_details.account_center_iframe()
            # 获取列表设备imei,名称和sim卡号
            info = self.account_center_page_details.get_list_add_equipment_user_and_sim(
            )

            # 验证设备名称和sim卡的元素长度
            self.assertEqual(
                50,
                self.account_center_page_details.get_fast_sale_dev_name_len(),
                "设备名称长度不一致")
            self.assertEqual(
                20,
                self.account_center_page_details.get_fast_sale_dev_sim_len(),
                "设备sim卡长度不一致")

            # 编辑设备名称和sim卡号
            self.account_center_page_details.edit_list_add_equipment(
                info["imei"], data["dev_name"], data["sim"])

            # 点击用户到期时间
            self.account_center_page_details.account_center_iframe()
            self.account_center_page_details.choose_account_expired_time(
                data["selected_dev"])
            sleep(1)
            # 销售
            self.account_center_page_details.sale_button()
            # 通过弹出框状态验证是否销售成功
            sale_status_text = self.account_center_page_details.get_sale_status(
            )
            self.assertIn(
                self.assert_text.account_center_page_operation_done(),
                sale_status_text, "销售失败")
            self.driver.default_frame()
            sleep(2)

            # 点击设备管理
            dev_data = self.account_center_page_details.get_dev_manage_equipment_user_and_sim(
                info["imei"])
            for i in range(len(dev_data["dev_imei"])):
                if data["dev_name"] != "":
                    self.assertEqual(info["imei"][i] + data["dev_name"],
                                     dev_data["dev_name"][i], "设备名称与期望不一致")
                else:
                    self.assertIn(info["imei"][i][10:],
                                  dev_data["dev_name"][i],
                                  "为空时,设备名称不存在后五位imei")

                self.assertEqual(data["sim"], dev_data["dev_sim"][i],
                                 "sim卡与期望不一致")

            # 改设备数据
            self.account_center_page_details.dev_manage_edit_equipment_user_and_sim(
                data["old_dev_name"], data["old_sim"])

            break
class TestCase61CustManageLowerAccountOperate(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriverServer(choose='chrome')
        self.base_url = self.driver.base_url
        self.base_page = BasePageServer(self.driver, self.base_url)
        self.login_page = LoginPage(self.driver, self.base_url)
        self.cust_manage_basic_info_and_add_cust_page = CustManageBasicInfoAndAddCustPage(
            self.driver, self.base_url)
        self.cust_manage_cust_list_page = CustManageCustListPage(
            self.driver, self.base_url)
        self.cust_manage_my_dev_page = CustManageMyDevPage(
            self.driver, self.base_url)
        self.cust_manage_lower_account_page = CustManageLowerAccountPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPage(
            self.driver, self.base_url)
        self.driver.set_window_max()
        self.log_in_base = LogInBaseServer(self.driver, self.base_url)
        self.assert_text = AssertText()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_cust_manage_lower_account_operate(self):
        '''客户管理-下级客户-单个客户操作'''

        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录
        self.log_in_base.log_in()
        self.driver.wait(1)
        # 进入客户管理页面
        self.cust_manage_basic_info_and_add_cust_page.enter_cust_manage()
        self.driver.wait()
        # account = self.cust_manage_basic_info_and_add_cust_page.get_account_text()

        # 点击单个用户的重置密码
        self.cust_manage_lower_account_page.acc_reset_passwd()

        # 获取重置密码弹框文本内容
        text = self.cust_manage_lower_account_page.reset_passwd_content()

        # 验证重置密码弹框文本内容是否正确显示
        self.assertIn(self.assert_text.cust_page_are_you_reset_this_password(),
                      text, "重置密码弹框文本内容显示错误")

        # 确定重置密码
        self.cust_manage_lower_account_page.reset_passwd_ensure()

        # 获取重置状态
        reset_status = self.cust_manage_lower_account_page.reset_passwd_content(
        )

        # 验证操作状态是否成功
        self.assertIn(self.assert_text.account_center_page_operation_done(),
                      reset_status, "操作失败")

        # 获取当前窗口句柄
        account_center_handle = self.driver.get_current_window_handle()
        # 点击单个用户的控制台
        self.cust_manage_lower_account_page.enter_console()
        self.driver.wait()

        expect_url = self.base_url + "/index"

        # 获取当前所有窗口句柄
        all_handles = self.driver.get_all_window_handles()
        for handle in all_handles:
            if handle != account_center_handle:
                self.driver.switch_to_window(handle)
                self.driver.wait(1)
                current_url = self.driver.get_current_url()

                self.assertEqual(expect_url, current_url, "控制台页面跳转错误!")

                # 关闭当前窗口
                self.driver.close_current_page()
                # 回到账户中心窗口
                self.driver.switch_to_window(account_center_handle)
                self.driver.wait()

        # 点击单个用户的删除
        self.cust_manage_lower_account_page.delete_acc()
        self.driver.click_element('c,layui-layer-btn1')