Exemple #1
0
class TestCase10AccountCenterOverviewStock(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_details = AccountCenterDetailsPage(self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPage(self.driver, self.base_url)
        self.driver.set_window_max()
        self.connect_sql = ConnectSql()
        self.log_in_base = LogInBaseServer(self.driver, self.base_url)
        self.account_center_change_page = AccountCenterChangePage(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_overview_stock(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录账号
        self.log_in_base.log_in()
        account = self.log_in_base.get_log_in_account()
        self.account_center_page_navi_bar.click_account_center_button()

        # 拖拽页面到库存显示的
        self.account_center_change_page.switch_kucun_dev_enable()
        self.account_center_change_page.switch_to_kucun_dev_frame()

        kucun_account = self.account_center_change_page.get_account_in_kuncun_frame()
        self.driver.default_frame()
Exemple #2
0
class TestCase801MessageCenterSearchMassage(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.message_center_page = MessageCenterPage(self.driver,
                                                     self.base_url)
        self.log_in_base = LogInBaseServer(self.driver, self.base_url)
        self.account_center_page_read_csv = AccountCenterPageReadCsv()
        self.help_page = HelpPage(self.driver, self.base_url)
        self.assert_text = AssertText()
        self.driver.set_window_max()
        self.driver.clear_cookies()
        self.base_page.open_page()
        self.log_in_base.log_in()

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

    def test_case_801_message_center_search_massage(self):
        user_account = self.log_in_base.get_log_in_account()
        # 点击消息中心
        self.message_center_page.click_message_center_button()

        csv_file = self.account_center_page_read_csv.read_csv(
            'message_center_search.csv')
        csv_data = csv.reader(csv_file)
        i = 1
        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            search_data = {
                'imei': row[0],
                'massage_type': row[1],
                'is_read': row[2]
            }
            print(search_data)
            self.message_center_page.add_data_search_message_data(search_data)
            # 获取当前用户和下级用户的所有用户id
            all_user_id = self.help_page.get_all_user_id(user_account)
            # 获取数据库查询的条数
            sql_total = self.message_center_page.get_sql_total_search_center_massage(
                search_data, all_user_id)
            # 获取页面上的数据条数
            web_total = self.message_center_page.get_web_total_search_center_massage(
            )
            print('第%s次查询的数据库总数:%s' % (i, sql_total))
            print('第%s次查询的页面总数:%s' % (i, web_total))
            i += 1
            self.assertEqual(sql_total, web_total)

        csv_file.close()
class TestCase139RiskPointShare(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.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.driver.set_window_max()
        self.assert_text = AssertText()
        self.log_in_base.log_in_jimitest()
        self.connect_sql = ConnectSql()
        self.search_sql = SafeAreaSearchSql()
        self.safe_area_page_read_csv = SafeAreaPageReadCsv()

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

    def test_case_139_risk_point_share(self):
        # 点击账号中心
        sleep(5)
        self.safe_area_page.click_account_center()
        # 获取登录账号
        account = self.log_in_base.get_log_in_account()
        # 断言url
        self.safe_area_page.click_control_after_click_safe_area()
        expect_url = self.base_url + "/safearea/geozonemap?flag=0"
        self.assertEqual(expect_url, self.driver.get_current_url())

        self.safe_area_page.click_risk_point_share_button()
        csv_file = self.safe_area_page_read_csv.read_csv(
            'risk_point_share.csv')
        csv_data = csv.reader(csv_file)

        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            data = {'risk_name': row[0]}
            self.safe_area_page.add_data_to_search_risk_point_in_safe_area(
                data)
            # 获取查询出来的页面条数
            web_total = self.safe_area_page.get_web_total_after_click_search_risk_share(
            )
            sql_total = self.safe_area_page.get_sql_total_after_click_search_risk_share(
                data)
            self.assertEqual(web_total, sql_total)
        csv_file.close()
Exemple #4
0
class TestCase201UserCenterModifyInfo(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.user_center_page = UserCenterPage(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_user_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]
            }
            # 获取当前登录账号
            log_in_account = self.log_in_base.get_log_in_account()

            # 从数据库获取登录账号的客户名称、电话、邮箱
            account_info = self.user_center_page.get_account_info(log_in_account)
            print(account_info)
            # 点击个人中心 - 修改资料
            self.user_center_page.click_user_center_button()
            self.user_center_page.click_modify_user_info()
            # 获取修改资料里面的信息
            user_account = self.user_center_page.get_user_account_in_modify_page()
            user_name = self.user_center_page.get_user_name_in_modify_page()
            user_phone = self.user_center_page.get_user_phone_in_modify_page()
            user_email = self.user_center_page.get_user_email_in_modify_page()
            # 断言
            self.assertEqual(log_in_account, user_account)
            self.assertEqual(account_info[0], user_name)
            self.assertEqual(account_info[1], user_phone)
            self.assertEqual(account_info[2], user_email)

            # 填写客户名称、电话、邮箱
            self.user_center_page.add_data_to_modify_info(user_to_modify_info)
            # 点击取消的按钮
            self.user_center_page.click_cancel_button()
            # 从数据库获取登录账号的客户名称、电话、邮箱
            account_info1 = self.user_center_page.get_account_info(log_in_account)
            print(account_info1)
            self.assertEqual(account_info, account_info1)

            # 点击个人中心 - 修改资料
            self.user_center_page.click_user_center_button()
            self.user_center_page.click_modify_user_info()
            # 获取修改资料里面的信息
            user_account = self.user_center_page.get_user_account_in_modify_page()
            user_name = self.user_center_page.get_user_name_in_modify_page()
            user_phone = self.user_center_page.get_user_phone_in_modify_page()
            user_email = self.user_center_page.get_user_email_in_modify_page()
            # 断言
            self.assertEqual(log_in_account, user_account)
            self.assertEqual(account_info1[0], user_name)
            self.assertEqual(account_info1[1], user_phone)
            self.assertEqual(account_info1[2], user_email)
            # 点击关闭 # 填写客户名称、电话、邮箱
            self.user_center_page.add_data_to_modify_info(user_to_modify_info)
            self.user_center_page.click_close_button()
            # 从数据库获取登录账号的客户名称、电话、邮箱
            account_info2 = self.user_center_page.get_account_info(log_in_account)
            print(account_info2)
            self.assertEqual(account_info, account_info2)

            # 点击个人中心 - 修改资料
            self.user_center_page.click_user_center_button()
            self.user_center_page.click_modify_user_info()
            # 获取修改资料里面的信息
            user_account = self.user_center_page.get_user_account_in_modify_page()
            user_name = self.user_center_page.get_user_name_in_modify_page()
            user_phone = self.user_center_page.get_user_phone_in_modify_page()
            user_email = self.user_center_page.get_user_email_in_modify_page()
            # 断言
            self.assertEqual(log_in_account, user_account)
            self.assertEqual(account_info2[0], user_name)
            self.assertEqual(account_info2[1], user_phone)
            self.assertEqual(account_info2[2], user_email)
            # 填写客户名称、电话、邮箱
            self.user_center_page.add_data_to_modify_info(user_to_modify_info)
            # 点击确认
            self.user_center_page.click_ensure_button()
            # 从数据库获取登录账号的客户名称、电话、邮箱
            account_info3 = self.user_center_page.get_account_info(log_in_account)
            print(account_info3)
            web_data = [user_to_modify_info['username'], user_to_modify_info['phone'], user_to_modify_info['email']]
            self.assertEqual(account_info3, web_data)
            # 点击个人中心 - 修改资料
            self.user_center_page.click_user_center_button()
            self.user_center_page.click_modify_user_info()
            # 获取修改资料里面的信息
            user_account = self.user_center_page.get_user_account_in_modify_page()
            user_name = self.user_center_page.get_user_name_in_modify_page()
            user_phone = self.user_center_page.get_user_phone_in_modify_page()
            user_email = self.user_center_page.get_user_email_in_modify_page()
            # 断言
            self.assertEqual(log_in_account, user_account)
            self.assertEqual(account_info3[0], user_name)
            self.assertEqual(account_info3[1], user_phone)
            self.assertEqual(account_info3[2], user_email)
            self.user_center_page.click_close_button()
        csv_file.close()
Exemple #5
0
class TestCase40AccountCenterOperLoginLog(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.help_page = HelpPage(self.driver, self.base_url)
        self.account_center_page_operation_log = AccountCenterOperationLogPage(self.driver, self.base_url)
        self.help_page_sql = HelpPageSql()
        self.account_center_page_read_csv = AccountCenterPageReadCsv()
        self.connect_sql = ConnectSql()
        self.log_in_base = LogInBaseServer(self.driver, self.base_page)
        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_login_log(self):
        self.base_page.open_page()
        self.log_in_base.log_in()
        self.log_in_base.click_account_center_button()
        # 获取登录账号的用户名
        current_account = self.log_in_base.get_log_in_account()

        # 点击招呼栏-业务日志
        self.account_center_page_operation_log.click_help_button()
        self.help_page.click_log_in_log()
        # 判断当前页面是否正确跳转至业务日志页面
        expect_url = self.base_url + "/userFeedback/toHelp"
        self.assertEqual(expect_url, self.driver.get_current_url(), "当前页面跳转错误")

        i = 0

        csv_file = self.account_center_page_read_csv.read_csv('search_log_in_log_data.csv')
        csv_data = csv.reader(csv_file)
        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            search_data = {
                'account': row[0],
                'begin_time': row[1],
                'end_time': row[2]
            }
            self.help_page.search_login_log(search_data)

            connect = self.connect_sql.connect_tuqiang_sql()
            # 创建数据库游标
            cur = connect.cursor()

            # 执行sql脚本查询当前登录账号的userId,fullParent
            get_id_sql = "select o.userId from user_info o where o.account = '" + current_account + "' ;"
            cur.execute(get_id_sql)
            # 读取数据
            user_relation = cur.fetchall()
            # 遍历数据
            for row1 in user_relation:
                user_relation_id = {
                    "userId": row1[0]
                }
                get_total_sql = self.help_page_sql.search_log_in_sql(user_relation_id['userId'], search_data)
                print(get_total_sql)
                cur.execute(get_total_sql)
                # 读取数据
                total_data = cur.fetchall()
                # 从数据tuple中获取最终查询记录统计条数
                total_list = []
                for range1 in total_data:
                    for range2 in range1:
                        total_list.append(range2)
                total = len(total_list)
                i += 1
                print('第%s次查询数据库的条数为:%s' % (i, total))
                web_total = self.help_page.get_current_login_log()
                print('第%s次查询页面的条数是:%s' % (i, web_total))
                self.assertEqual(total, web_total)

            cur.close()
            connect.close()

        csv_file.close()
class TestCase206UserCenterDevLog(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.help_page = HelpPage(self.driver, self.base_url)
        self.account_center_page_operation_log = AccountCenterOperationLogPage(
            self.driver, self.base_url)
        self.help_page_sql = HelpPageSql()
        self.account_center_page_read_csv = AccountCenterPageReadCsv()
        self.connect_sql = ConnectSql()
        self.log_in_base = LogInBaseServer(self.driver, self.base_page)
        self.user_center_page = UserCenterPage(self.driver, self.base_url)
        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_user_center_dev_log(self):
        self.base_page.open_page()
        self.log_in_base.log_in()
        user_account = self.log_in_base.get_log_in_account()

        # 点击设备管理
        current_handle = self.driver.get_current_window_handle()
        self.user_center_page.click_dev_management_button()
        sleep(3)
        self.base_page.change_windows_handle(current_handle)
        # 获取列表第一个imei号
        sleep(3)
        imei = self.user_center_page.get_dev_list_first_imei()
        # 点击编辑
        self.user_center_page.click_edit_dev_button()
        # 点击确定
        self.user_center_page.click_ensure_button()

        # 销售
        self.user_center_page.click_sale_button()

        # 进入帮助 - 业务日志页面
        current_handle_01 = self.driver.get_current_window_handle()
        self.user_center_page.click_user_center_button()
        self.base_page.change_windows_handle(current_handle_01)
        # 点击帮助
        self.user_center_page.click_help_button()
        # 切换到业务日志的frame里面
        self.user_center_page.switch_to_business_frame()

        self.user_center_page.click_search_button_in_business_log()

        # 获取第一条数据的操作人、目标账号、操作平台、描述
        sleep(3)
        operation = self.user_center_page.get_operation_in_business_log()
        target_account = self.user_center_page.get_target_account_in_business_log(
        )
        operation_platform = self.user_center_page.get_operation_platform_in_business_log(
        )
        desc = self.user_center_page.get_desc_in_business_log()
        self.assertEqual(' ' + user_account, operation)
        self.assertEqual(target_account, user_account)
        self.assertEqual('网页端', operation_platform)

        web_desc = "%s修改设备%s" % (user_account, imei)
        self.assertEqual(web_desc, desc)

        # 选择设备分配搜索
        self.user_center_page.search_dev_sale_in_business_log()
        # 点击搜索
        self.user_center_page.click_search_button_in_business_log()

        operation_01 = self.user_center_page.get_operation_in_business_log()
        target_account_01 = self.user_center_page.get_target_account_in_business_log(
        )
        operation_platform_01 = self.user_center_page.get_operation_platform_in_business_log(
        )
        desc_01 = self.user_center_page.get_desc_in_business_log()

        self.assertEqual(' ' + user_account, operation_01)
        self.assertEqual(target_account_01, user_account)
        self.assertEqual('网页端', operation_platform_01)

        web_desc_01 = "%s将设备%s从%s分配给%s" % (user_account, imei, user_account,
                                           user_account)
        self.assertEqual(web_desc_01, desc_01)
        self.driver.default_frame()
class TestCase39AccountCenterOperCustLog(unittest.TestCase):
    """ 帮助--业务日志 """

    # author:邓肖斌
    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.help_page = HelpPage(self.driver, self.base_url)
        self.account_center_page_operation_log = AccountCenterOperationLogPage(
            self.driver, self.base_url)
        self.help_page_sql = HelpPageSql()
        self.account_center_page_read_csv = AccountCenterPageReadCsv()
        self.connect_sql = ConnectSql()
        self.log_in_base = LogInBaseServer(self.driver, self.base_page)
        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_oper_cust_log(self):
        self.base_page.open_page()
        self.log_in_base.log_in()
        self.log_in_base.click_account_center_button()
        # 获取登录账号的用户名
        current_account = self.log_in_base.get_log_in_account()

        # 点击招呼栏-业务日志
        self.account_center_page_operation_log.click_help_button()
        self.help_page.click_business_log()
        # 判断当前页面是否正确跳转至业务日志页面
        expect_url = self.base_url + "/userFeedback/toHelp"
        self.assertEqual(expect_url, self.driver.get_current_url(), "当前页面跳转错误")

        i = 0

        csv_file = self.account_center_page_read_csv.read_csv(
            'search_cus_manager_log_data.csv')
        csv_data = csv.reader(csv_file)
        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            search_data = {
                'search_type': row[0],
                'begin_time': row[1],
                'end_time': row[2],
                'more': row[3]
            }
            self.help_page.search_business_log(search_data)

            connect = self.connect_sql.connect_tuqiang_sql()
            # 创建数据库游标
            cur = connect.cursor()

            # 执行sql脚本查询当前登录账号的userId,fullParent
            get_id_sql = \
                "select o.account,o.userId,o.fullParentId from user_info o where o.account = " \
                "'" + current_account + "' ;"
            cur.execute(get_id_sql)
            # 读取数据
            user_relation = cur.fetchall()
            # 遍历数据
            for row1 in user_relation:
                user_relation_id = {
                    "account": row1[0],
                    "userId": row1[1],
                    "fullParent": row1[2]
                }

                # 执行sql脚本,根据当前登录账号的userId,fullParent查询出当前账户的所有下级账户
                get_lower_account_sql = "select userId from user_info where fullParentId like" + \
                                        "'" + user_relation_id["fullParent"] + user_relation_id["userId"] + "%'" + ";"
                cur.execute(get_lower_account_sql)
                # 读取数据
                lower_account = cur.fetchall()
                lower_account_list = [user_relation_id["userId"]]
                for range1 in lower_account:
                    for range2 in range1:
                        lower_account_list.append(range2)
                lower_account_tuple = tuple(lower_account_list)
                get_total_sql = self.help_page_sql.business_log_sql(
                    lower_account_tuple, search_data)
                print(get_total_sql)
                cur.execute(get_total_sql)
                # 读取数据
                total_data = cur.fetchall()
                # 从数据tuple中获取最终查询记录统计条数
                total_list = []
                for range3 in total_data:
                    for range4 in range3:
                        total_list.append(range4)
                total = len(total_list)
                i += 1
                print('第%s次查询数据库的条数为:%s' % (i, total))
                web_total = self.help_page.get_current_customer_log()
                print('第%s次查询页面的条数是:%s' % (i, web_total))
                self.assertEqual(total, web_total)

            cur.close()
            connect.close()

        csv_file.close()
Exemple #8
0
class TestCase49AccountCenterBillList(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.account_center_page_refill_card = AccountCenterRefillCardPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBaseServer(self.driver, self.base_page)
        self.account_center_page = AccountCenterPage(self.driver,
                                                     self.base_url)
        self.search_sql = SearchSql()
        self.assert_text = AssertText()
        self.assert_text2 = AssertText2()
        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_case_account_center_bill_list(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录账号
        self.log_in_base.log_in_jimitest()
        self.account_center_page_navi_bar.click_account_center_button()
        account = self.log_in_base.get_log_in_account()
        # 点击账单按钮
        self.account_center_page_navi_bar.switch_to_chongzhi_card()
        self.account_center_page.clcik_bill_button_in_account_info_page()

        csv_file = self.account_center_page_read_csv.read_csv('bill_list.csv')
        csv_data = csv.reader(csv_file)

        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            search_data = {
                'date_type': row[0],
                'begin_time': row[1],
                'end_time': row[2],
                'imei': row[3],
                'telephone': row[4],
                'alarm_type': row[5],
                'result': row[6]
            }
            self.account_center_page.add_data_to_search_bill_list_in_bill_list_page(
                search_data)

            ## 获取数据库查询的条数
            sql_number = self.account_center_page.get_sql_number_after_click_search_button(
                account, search_data)
            # 获取页面上的条数
            web_number = self.account_center_page.get_web_number_after_click_search_button(
            )
            self.assertEqual(sql_number, web_number)
        csv_file.close()
class TestCase16AccountCenterOverviewEquipmentManager(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_details = AccountCenterDetailsPage(
            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.connect_sql = ConnectSql()
        self.assert_text = AssertText()
        self.assert_text2 = AssertText2()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

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

    def test_account_center_overview_equipment_manager(self):
        # 打开途强在线首页-登录页
        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_details.account_center_iframe()
        current_account = self.log_in_base.get_log_in_account()
        sleep(2)
        account_center_handle = self.driver.get_current_window_handle()
        # 点击库存
        self.account_center_page_details.account_center_iframe()
        self.account_center_page_details.account_overview('设备管理')
        self.driver.default_frame()

        all_handles = self.driver.get_all_window_handles()
        for handle in all_handles:
            if handle != account_center_handle:
                self.driver.switch_to_window(handle)
                sleep(2)
                expect_url = self.driver.get_current_url()
                actual_url = self.base_url + '/device/toDeviceManage'
                self.assertEqual(expect_url, actual_url,
                                 '点击设备管理后,实际的url和期望的不一样!')

                # 验证文本
                # text = self.account_center_page_details.click_dev_manage_get_text()
                text = self.account_center_page_details.click_dev_manage_get_text(
                )
                print(text)
                self.assertEqual(
                    " " + self.assert_text2.
                    account_center_page_contains_lower_dev_text(), text)

                # 查看控制台告警设置能否打开
                self.account_center_page_navi_bar.click_alarm_button_in_console(
                )
                # 断言
                get_text = self.account_center_page_navi_bar.get_text_after_click_alarm_button(
                )
                self.assertEqual(
                    self.assert_text.account_center_page_alarm_manager_text(),
                    get_text)
                self.account_center_page_navi_bar.close_alarm_in_console()

                self.driver.close_current_page()
                # 回到账户中心窗口
                self.driver.switch_to_window(account_center_handle)
                self.driver.wait()
class TestCase51AccountCenterManageAndTelephoneAlarm(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.account_center_page_refill_card = AccountCenterRefillCardPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBaseServer(self.driver, self.base_page)
        self.account_center_page = AccountCenterPage(self.driver,
                                                     self.base_url)
        self.search_sql = SearchSql()
        self.assert_text = AssertText()
        self.assert_text2 = AssertText2()
        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_case_account_center_manage_and_telephone_alarm(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录账号
        self.log_in_base.log_in_jimitest()
        self.account_center_page_navi_bar.click_account_center_button()
        account = self.log_in_base.get_log_in_account()
        # 点击订单管理
        self.account_center_page.clcik_massage_and_telephone_alarm_button_in_account_info_page(
        )

        ## 进入账号详情的frame
        self.account_center_page.switch_to_massage_and_telephone_alarm_frame()

        csv_file = self.account_center_page_read_csv.read_csv(
            'massage_and_telephone_alarm.csv')
        csv_data = csv.reader(csv_file)

        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            search_data = {'alarm_name': row[0], 'alarm_type': row[1]}
            self.account_center_page.add_data_to_search_massage_and_telephone_alarm_in_set_page(
                search_data)

            ## 获取数据库查询的条数
            sql_number = self.account_center_page.get_sql_number_after_click_massage_and_telephone_alarm_set_search_button(
                account, search_data)
            # 获取页面上的条数
            web_number = self.account_center_page.get_web_number_after_click_massage_and_telephone_alarm_search_button(
            )
            self.assertEqual(sql_number, web_number)
        csv_file.close()
        self.driver.default_frame()
class TestCase138SafeAreaMarkPointOperation(unittest.TestCase):
    """ 围栏编辑页面搜索关联设备 """

    # 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.safe_area_page_read_csv = SafeAreaPageReadCsv()
        self.assert_text = AssertText()
        self.connect_sql = ConnectSql()
        self.safe_area_search_sql = SafeAreaSearchSql()

        self.base_page.open_page()
        self.base_page.click_chinese_button()
        self.driver.set_window_max()
        self.log_in_base.log_in_jimitest()

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

    def test_case_safe_area_mark_point_operation(self):
        self.log_in_base.click_account_center_button()
        # 获取登录账号的用户名
        current_account = self.log_in_base.get_log_in_account()

        # 跳转到安全区域
        self.safe_area_page.click_control_after_click_safe_area()
        # 断言url
        expect_url = self.base_url + "/safearea/geozonemap?flag=0"
        self.assertEqual(expect_url, self.driver.get_current_url())
        # 点击围栏
        self.safe_area_page.click_select_fence_button()
        # 点击编辑
        self.safe_area_page.click_edit_fence()
        # 获取围栏名称
        fence_name = self.safe_area_page.get_fence_name_of_cur_edit()
        print("当前围栏名称为:%s" % fence_name)

        i = 0

        # 读csv
        csv_file = self.safe_area_page_read_csv.read_csv(
            'safe_area_fences_relation_dev_data.csv')
        csv_data = csv.reader(csv_file)

        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            data = {
                "account": row[0],
                "search_type": row[1],
                "search_content": row[2]
            }

            self.safe_area_page.fences_edit_page_search_dev(data)

            # 断言
            # 连接数据库
            connect = self.connect_sql.connect_tuqiang_sql()
            # 建立游标
            cursor = connect.cursor()
            geo_id_sql = self.safe_area_search_sql.search_sql_in_test_case_138_01(
                fence_name)
            # 执行
            cursor.execute(geo_id_sql)
            geo = cursor.fetchall()
            print(geo)
            for row1 in geo:
                geo_id = {"geo_id": row1[0]}

                # 判断搜索条件
                get_sql = self.safe_area_search_sql. \
                    search_sql_in_test_case_138_02(geo_id["geo_id"], current_account, data)
                # 执行sql
                print(get_sql)
                cursor.execute(get_sql)

                current_total = cursor.fetchall()
                total_list = []
                for range1 in current_total:
                    for range2 in range1:
                        total_list.append(range2)
                total_num = len(total_list)
                web_total = self.safe_area_page.get_fence_relation_dev_num()
                i += 1
                print('第%s次查询页面的条数是:%s' % (i, web_total))
                print('第%s次查询数据库的条数为:%s' % (i, total_num))
                self.assertEqual(total_num, web_total)

            cursor.close()
            connect.close()
class TestCase24AccountCenterOverviewAttention(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_details = AccountCenterDetailsPage(
            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.connect_sql = ConnectSql()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

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

    def test_account_center_overview_attention(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录账号
        self.log_in_base.log_in()
        self.account_center_page_navi_bar.click_account_center_button()
        current_account = self.log_in_base.get_log_in_account()
        sleep(2)
        account_center_handle = self.driver.get_current_window_handle()

        self.account_center_page_details.account_center_iframe()
        actual_total_attention = self.account_center_page_details.get_actual_total_attention(
        )
        # 点击库存
        self.account_center_page_details.account_overview('重点关注车辆')
        self.driver.default_frame()

        all_handles = self.driver.get_all_window_handles()
        for handle in all_handles:
            if handle != account_center_handle:
                self.driver.switch_to_window(handle)
                sleep(2)
                expect_url = self.driver.get_current_url()
                connect = self.connect_sql.connect_tuqiang_sql()
                # 创建数据库游标
                cur = connect.cursor()
                # 执行sql脚本查询当前登录账号的userId,fullParent
                get_id_sql = "select userId from user_info where account = '" + current_account + "' ;"
                cur.execute(get_id_sql)
                # 读取数据
                user_relation = cur.fetchall()
                print(user_relation)
                user_id = user_relation[0][0]
                # actual_url = self.base_url + '/console?userId=%s&viewFlag=4' % user_id
                actual_url = self.base_url + '/console?viewFlag=4'
                cur.close()
                connect.close()
                self.assertEqual(expect_url, actual_url,
                                 '点击重点关注车辆后,实际的url和期望的不一样!')
                sleep(2)

                # 断言已关注被选中
                self.assertEqual(
                    'active',
                    self.driver.get_element(
                        'x,//*[@id="FOLLOW"]').get_attribute('class'))

                expect_total_inactive = self.account_center_page_details.get_total_all_attention_equipment(
                )
                self.assertEqual(actual_total_attention, expect_total_inactive,
                                 '账号重点关注车辆数量错误')

                # 查看控制台告警设置能否打开
                self.account_center_page_navi_bar.click_alarm_button_in_console(
                )
                # 断言
                get_text = self.account_center_page_navi_bar.get_text_after_click_alarm_button(
                )
                self.assertEqual(
                    self.assert_text.account_center_page_alarm_manager_text(),
                    get_text)
                self.account_center_page_navi_bar.close_alarm_in_console()

                self.driver.close_current_page()
                # 回到账户中心窗口
                self.driver.switch_to_window(account_center_handle)
                self.driver.wait()
class TestCase212UserCenterCancelCommandLog(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.help_page = HelpPage(self.driver, self.base_url)
        self.account_center_page_operation_log = AccountCenterOperationLogPage(
            self.driver, self.base_url)
        self.help_page_sql = HelpPageSql()
        self.account_center_page_read_csv = AccountCenterPageReadCsv()
        self.connect_sql = ConnectSql()
        self.log_in_base = LogInBaseServer(self.driver, self.base_page)
        self.user_center_page = UserCenterPage(self.driver, self.base_url)
        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_user_center_cancel_command_log(self):
        self.base_page.open_page()
        self.log_in_base.log_in_jimitest()
        user_account = self.log_in_base.get_log_in_account()

        # 点击设置 - 指令管理
        self.user_center_page.click_set_up_and_command_set_up()
        # 点击下发指令管理
        self.user_center_page.click_issued_command_management()
        sleep(3)
        # 搜索待发送的指令记录
        self.user_center_page.search_to_be_sent_command()

        # 获取第一条指令的信息
        command_info = self.user_center_page.get_command_info_first_command_record(
        )
        command_imei = self.user_center_page.get_command_imei_first_command_record(
        )

        command_imei_user_account = self.user_center_page.get_command_imei_user_account(
            command_imei)

        # 选择第一条记录,选中取消指令
        self.user_center_page.select_first_command_record_and_cancel()

        self.user_center_page.click_user_center_button()
        # 点击帮助
        self.user_center_page.click_help_button()
        # 切换到业务日志的frame里面
        self.user_center_page.switch_to_business_frame()

        # 搜索取消指令
        self.user_center_page.select_cancel_command_log()
        # 点击搜索
        self.user_center_page.click_search_button_in_business_log()
        sleep(5)

        # 获取第一条日志的记录
        operation = self.user_center_page.get_operation_in_business_log()
        target_account = self.user_center_page.get_target_account_in_business_log(
        )
        operation_platform = self.user_center_page.get_operation_platform_in_business_log(
        )
        desc = self.user_center_page.get_desc_in_business_log()

        # 断言
        self.assertEqual(operation + " ", ' ' + user_account)
        self.assertEqual(target_account, command_imei_user_account)
        self.assertEqual('网页端', operation_platform)

        desc_01 = "%s取消设备%s 指令%s" % (operation, command_imei, command_info)
        self.assertEqual(desc_01, " " + desc)
class TestCase15AccountCenterOverviewNextGuest(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_details = AccountCenterDetailsPage(
            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.connect_sql = ConnectSql()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

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

    def test_account_center_overview_next_guest(self):
        # 打开途强在线首页-登录页
        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_details.account_center_iframe()
        current_account = self.log_in_base.get_log_in_account()
        sleep(2)
        account_center_handle = self.driver.get_current_window_handle()

        # 点击下级客户管理
        self.account_center_page_details.account_center_iframe()
        self.account_center_page_details.account_overview('下级客户管理')
        self.driver.default_frame()

        all_handles = self.driver.get_all_window_handles()
        for handle in all_handles:
            if handle != account_center_handle:
                self.driver.switch_to_window(handle)
                sleep(2)
                expect_url = self.driver.get_current_url()
                # 创建数据库游标
                connect = self.connect_sql.connect_tuqiang_sql()
                cur = connect.cursor()
                # 执行sql脚本查询当前登录账号的userId,fullParent
                get_id_sql = "select userId from user_info where account = '" + current_account + "';"
                cur.execute(get_id_sql)
                # 读取数据
                user_relation = cur.fetchall()
                user_id = user_relation[0][0]
                cur.close()
                connect.close()
                # actual_url = self.base_url + '/customer/toSearch?userId=%s&viewFlag=4' % user_id
                actual_url = self.base_url + '/customer/toSearch?viewFlag=4'
                self.assertEqual(expect_url, actual_url,
                                 '点击下级客户管理后,实际的url和期望的不一样!')
                sleep(3)
                expect_next = self.account_center_page_details.get_current_account_next(
                )
                actual_next = self.account_center_page_details.get_actual_current_account_next(
                )
                self.assertEqual(expect_next, actual_next, '左侧列表的下级总数和右侧不一致!')

                # 查看控制台告警设置能否打开
                self.account_center_page_navi_bar.click_alarm_button_in_console(
                )
                # 断言
                get_text = self.account_center_page_navi_bar.get_text_after_click_alarm_button(
                )
                self.assertEqual(
                    self.assert_text.account_center_page_alarm_manager_text(),
                    get_text)
                self.account_center_page_navi_bar.close_alarm_in_console()

                self.driver.close_current_page()
                # 回到账户中心窗口
                self.driver.switch_to_window(account_center_handle)
                self.driver.wait()
class TestCase208UserCenterSafeAreaLog(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.help_page = HelpPage(self.driver, self.base_url)
        self.account_center_page_operation_log = AccountCenterOperationLogPage(self.driver, self.base_url)
        self.help_page_sql = HelpPageSql()
        self.account_center_page_read_csv = AccountCenterPageReadCsv()
        self.connect_sql = ConnectSql()
        self.log_in_base = LogInBaseServer(self.driver, self.base_page)
        self.user_center_page = UserCenterPage(self.driver, self.base_url)
        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_user_center_safe_area_log(self):
        self.base_page.open_page()
        self.log_in_base.log_in()
        user_account = self.log_in_base.get_log_in_account()

        # 点击安全区域
        current_handle = self.driver.get_current_window_handle()
        self.user_center_page.click_safe_area_button()
        self.base_page.change_windows_handle(current_handle)

        # 搜索平台围栏
        self.user_center_page.search_platform_fence()
        # 获取第一个围栏的名称
        fence_name = self.user_center_page.get_first_fence_name()

        # 点击编辑
        self.user_center_page.click_edit_fence_button()
        # 点击保存
        self.user_center_page.click_ensure_button()

        # 点击关联
        self.user_center_page.click_relevance_fence_button()
        # 选择设备进行关联
        imei_01 = self.user_center_page.click_dev_relevance_fence()
        # 点击保存
        self.user_center_page.click_ensure_button()

        # 取消关联
        self.user_center_page.click_relevance_fence_button()
        # 选择设备进行关联
        imei_02 = self.user_center_page.click_dev_relevance_fence()
        # 点击保存
        self.user_center_page.click_ensure_button()

        # 进入帮助 - 业务日志页面
        self.user_center_page.click_user_center_button()
        # 点击帮助
        self.user_center_page.click_help_button()
        # 切换到业务日志的frame里面
        self.user_center_page.switch_to_business_frame()

        # 选择安全区域查询 - 新增、编辑
        self.user_center_page.select_safe_area_search()
        self.user_center_page.select_edit_safe_area_search()
        sleep(5)

        operation_01 = self.user_center_page.get_operation_in_business_log()
        target_account_01 = self.user_center_page.get_target_account_in_business_log()
        operation_platform_01 = self.user_center_page.get_operation_platform_in_business_log()
        desc_01 = self.user_center_page.get_desc_in_business_log()

        self.assertEqual(operation_01, ' ' + user_account)
        self.assertEqual(target_account_01, user_account)
        self.assertEqual('网页端', operation_platform_01)
        web_desc_01 = "用户修改了(%s)围栏信息" % (fence_name)
        self.assertEqual(desc_01, web_desc_01)

        # 选择关联设备
        self.user_center_page.select_relevant_safe_area_search()
        sleep(5)

        operation_02 = self.user_center_page.get_operation_in_business_log_02()
        target_account_02 = self.user_center_page.get_target_account_in_business_log_02()
        operation_platform_02 = self.user_center_page.get_operation_platform_in_business_log_02()
        desc_02 = self.user_center_page.get_desc_in_business_log_02()

        self.assertEqual(operation_02, ' ' + user_account)
        self.assertEqual(target_account_02, user_account)
        self.assertEqual('网页端', operation_platform_02)
        web_desc_02 = "%s关联设备%s与区域信息%s" % (user_account, imei_01, fence_name)
        self.assertEqual(desc_02, web_desc_02)

        self.driver.default_frame()
class TestCase210UserCenterLoginLog(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.help_page = HelpPage(self.driver, self.base_url)
        self.account_center_page_operation_log = AccountCenterOperationLogPage(
            self.driver, self.base_url)
        self.help_page_sql = HelpPageSql()
        self.account_center_page_read_csv = AccountCenterPageReadCsv()
        self.connect_sql = ConnectSql()
        self.connect_es = ConnectEs()
        self.log_in_base = LogInBaseServer(self.driver, self.base_page)
        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_user_center_login_log(self):
        self.base_page.open_page()
        self.log_in_base.log_in()
        sleep(3)
        current_handle = self.driver.get_current_window_handle()
        self.log_in_base.click_account_center_button()
        self.base_page.change_windows_handle(current_handle)

        # 获取登录账号的用户名
        current_account = self.log_in_base.get_log_in_account()

        # 点击招呼栏-业务日志
        self.account_center_page_operation_log.click_help_button()
        self.help_page.click_log_in_log()
        # 判断当前页面是否正确跳转至业务日志页面
        expect_url = self.base_url + "/userFeedback/toHelp"
        self.assertEqual(expect_url, self.driver.get_current_url(), "当前页面跳转错误")

        i = 0
        csv_file = self.account_center_page_read_csv.read_csv(
            'search_log_in_log_data.csv')
        csv_data = csv.reader(csv_file)
        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            search_data = {
                'account': row[0],
                'begin_time': row[1],
                'end_time': row[2]
            }
            self.help_page.search_login_log(search_data)

            # 获取当前登录账号和下级账号全部的userid
            all_user_id = self.help_page.get_all_user_id(current_account)
            print(all_user_id)
            '''connect = self.connect_sql.connect_tuqiang_sql()
            cursor = connect.cursor()
            get_total_sql = self.help_page_sql.search_log_in_sql(all_user_id, search_data)
            cursor.execute(get_total_sql)
            total_list = cursor.fetchall()
            cursor.close()
            connect.close()'''
            # 连接Elastic search
            es = self.connect_es.connect_es()
            # 搜索的数据
            query_data = self.help_page.get_search_log_in_log_query_data(
                all_user_id, search_data)
            res_01 = es.search(index='userlogin_log_2',
                               body={
                                   'query': query_data,
                                   'size': 20000
                               })
            res_02 = es.search(index='userlogin_log_12',
                               body={
                                   'query': query_data,
                                   'size': 20000
                               })
            res_03 = es.search(index='userlogin_log_1',
                               body={
                                   'query': query_data,
                                   'size': 20000
                               })
            total = len(res_01['hits']['hits']) + len(
                res_02['hits']['hits']) + len(res_03['hits']['hits'])
            i += 1
            print('第%s次查询数据库的条数为:%s' % (i, total))
            web_total = self.help_page.get_current_login_log()
            print('第%s次查询页面的条数是:%s' % (i, web_total))
            if total != 0:
                total += 10
            self.assertEqual(total, web_total)

        csv_file.close()
class TestCase07AccountCenterMsgSearch(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_operation_log = AccountCenterOperationLogPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPage(
            self.driver, self.base_url)
        self.account_center_page_msg_center = AccountCenterMsgCenterPage(
            self.driver, self.base_url)
        self.assert_text = AssertText()
        self.driver.set_window_max()
        self.account_center_page_read_csv = AccountCenterPageReadCsv()
        self.connect_sql = ConnectSql()
        self.search_sql = SearchSql()
        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_account_center_msg_search(self):
        self.base_page.open_page()
        self.log_in_base.log_in()
        self.account_center_page_navi_bar.click_account_center_button()

        # self.driver.switch_to_frame('x,//*[@id="usercenterFrame"]')
        # 获取登录账号的用户名
        current_account = self.log_in_base.get_log_in_account()
        #self.driver.default_frame()

        # 进入消息中心
        self.account_center_page_msg_center.enter_msg_center()
        self.driver.wait(10)

        # 进入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有误!")

        csv_file = self.account_center_page_read_csv.read_csv(
            'search_massage_data.csv')
        csv_data = csv.reader(csv_file)
        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            search_data = {'imei': row[0], 'type': row[1], 'status': row[2]}
            # 搜索
            self.account_center_page_operation_log.add_data_to_search_massages(
                search_data)
            connect1 = self.connect_sql.connect_tuqiang_sql()
            # 创建数据库游标
            cur = connect1.cursor()
            # 执行sql脚本查询当前登录账号的userId,fullParent
            get_id_sql = "select o.account,o.userId,o.fullParentId from user_info o where o.account = '" + current_account + "';"
            cur.execute(get_id_sql)
            # 读取数据
            user_relation = cur.fetchall()
            # 遍历数据
            for row in user_relation:
                user_relation_id = {
                    "account": row[0],
                    "userId": row[1],
                    "fullParent": row[2]
                }

                # 执行sql脚本,根据当前登录账号的userId,fullParent查询出当前账户的所有下级账户
                get_lower_account_sql = "select userId from user_info where fullParentId like" + \
                                        "'" + user_relation_id["fullParent"] + user_relation_id["userId"] + "%'" + ";"
                cur.execute(get_lower_account_sql)
                # 读取数据
                lower_account = cur.fetchall()
                lower_account_list = [user_relation_id["userId"]]
                for range1 in lower_account:
                    for range2 in range1:
                        lower_account_list.append(range2)
                self.lower_account_tuple = tuple(lower_account_list)
            cur.close()
            connect1.close()

            connect = self.connect_sql.connect_tuqiang_sql()
            # 创建数据库游标
            cur = connect.cursor()
            get_total_sql = self.search_sql.search_massage_sql(
                self.lower_account_tuple, search_data)
            print(get_total_sql)
            cur.execute(get_total_sql)
            # 读取数据
            total_data = cur.fetchall()
            # 从数据tuple中获取最终查询记录统计条数
            total_list = []
            for range1 in total_data:
                for range2 in range1:
                    total_list.append(range2)
            total = len(total_list)
            print('本次查询数据库的条数为:%s' % total)
            web_total = self.account_center_page_operation_log.get_msg_number()
            print('本次查询页面的条数是:%s' % web_total)
            self.assertEqual(total, web_total)
            cur.close()
            connect.close()
        csv_file.close()
class TestCase207UserCenterCustomerLog(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.help_page = HelpPage(self.driver, self.base_url)
        self.account_center_page_operation_log = AccountCenterOperationLogPage(
            self.driver, self.base_url)
        self.help_page_sql = HelpPageSql()
        self.account_center_page_read_csv = AccountCenterPageReadCsv()
        self.connect_sql = ConnectSql()
        self.log_in_base = LogInBaseServer(self.driver, self.base_page)
        self.user_center_page = UserCenterPage(self.driver, self.base_url)
        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_user_center_customer_log(self):
        self.base_page.open_page()
        self.log_in_base.log_in()
        user_account = self.log_in_base.get_log_in_account()

        # 点击客户管理
        new_customer_data = ['新增的客户', 'new_1226']

        current_handle = self.driver.get_current_window_handle()
        self.user_center_page.click_customer_mangement()
        self.base_page.change_windows_handle(current_handle)

        # 新增客户按钮
        self.user_center_page.click_add_new_customer_buttons()
        # 点击切换到frame
        self.user_center_page.switch_to_add_new_customer_frame()
        # 填写用户名称和账号
        self.user_center_page.add_user_name_and_user_account(new_customer_data)
        self.driver.default_frame()
        # 点击确定
        self.user_center_page.click_ensure_button()

        # 搜索新增的用户
        self.user_center_page.search_user_in_customer_management(
            new_customer_data[1])

        # 修改用户信息 - 点击编辑
        self.user_center_page.click_edit_customer_button()
        # 点击保存
        self.user_center_page.click_ensure_button()

        # 点击重置密码
        self.user_center_page.click_reset_password_button()
        # 点击保存
        self.user_center_page.click_ensure_button()

        # 点击转移客户
        self.user_center_page.click_transfer_customer_button()
        # 点击保存
        self.user_center_page.click_ensure_button()

        # 点击删除客户
        self.user_center_page.click_delete_customer_button()
        # 点击保存
        self.user_center_page.click_ensure_button()

        # 进入帮助 - 业务日志页面
        self.user_center_page.click_user_center_button()
        # 点击帮助
        self.user_center_page.click_help_button()
        # 切换到业务日志的frame里面
        self.user_center_page.switch_to_business_frame()

        # 查询 客户管理 - 新增客户
        self.user_center_page.select_customer_management_condition()
        self.user_center_page.select_add_new_customer_log()
        # 点击搜索
        self.user_center_page.click_search_button_in_business_log()

        operation_01 = self.user_center_page.get_operation_in_business_log()
        target_account_01 = self.user_center_page.get_target_account_in_business_log(
        )
        operation_platform_01 = self.user_center_page.get_operation_platform_in_business_log(
        )
        desc_01 = self.user_center_page.get_desc_in_business_log()

        self.assertEqual(" " + user_account, operation_01)
        self.assertEqual(new_customer_data[1], target_account_01)
        self.assertEqual('网页端', operation_platform_01)
        web_desc_01 = "用户%s执行添加客户操作" % user_account
        self.assertEqual(web_desc_01, desc_01)

        # 查询修改用户信息
        self.user_center_page.select_edit_customer_log()
        # 点击搜索
        self.user_center_page.click_search_button_in_business_log()

        operation_02 = self.user_center_page.get_operation_in_business_log()
        target_account_02 = self.user_center_page.get_target_account_in_business_log(
        )
        operation_platform_02 = self.user_center_page.get_operation_platform_in_business_log(
        )
        desc_02 = self.user_center_page.get_desc_in_business_log()

        self.assertEqual(" " + user_account, operation_02)
        self.assertEqual(new_customer_data[1], target_account_02)
        self.assertEqual('网页端', operation_platform_02)
        web_desc_02 = "用户%s执行修改用户信息操作" % user_account
        self.assertEqual(web_desc_02, desc_02)

        # 查询删除用户信息
        self.user_center_page.select_delete_customer_log()
        # 点击搜索
        self.user_center_page.click_search_button_in_business_log()

        operation_03 = self.user_center_page.get_operation_in_business_log()
        target_account_03 = self.user_center_page.get_target_account_in_business_log(
        )
        operation_platform_03 = self.user_center_page.get_operation_platform_in_business_log(
        )
        desc_03 = self.user_center_page.get_desc_in_business_log()

        self.assertEqual(" " + user_account, operation_03)
        self.assertEqual(new_customer_data[1], target_account_03)
        self.assertEqual('网页端', operation_platform_03)
        web_desc_03 = "用户%s执行删除用户信息操作" % user_account
        self.assertEqual(web_desc_03, desc_03)

        # 查询重置密码信息
        self.user_center_page.select_reset_password_log()
        # 点击搜索
        self.user_center_page.click_search_button_in_business_log()

        operation_04 = self.user_center_page.get_operation_in_business_log()
        target_account_04 = self.user_center_page.get_target_account_in_business_log(
        )
        operation_platform_04 = self.user_center_page.get_operation_platform_in_business_log(
        )
        desc_04 = self.user_center_page.get_desc_in_business_log()

        self.assertEqual(" " + user_account, operation_04)
        self.assertEqual(new_customer_data[1], target_account_04)
        self.assertEqual('网页端', operation_platform_04)
        web_desc_04 = "用户%s执行重置密码操作" % user_account
        self.assertEqual(web_desc_04, desc_04)

        # 查询转移客户信息
        self.user_center_page.select_transfer_customer_log()
        # 点击搜索
        self.user_center_page.click_search_button_in_business_log()

        operation_05 = self.user_center_page.get_operation_in_business_log()
        target_account_05 = self.user_center_page.get_target_account_in_business_log(
        )
        operation_platform_05 = self.user_center_page.get_operation_platform_in_business_log(
        )
        desc_05 = self.user_center_page.get_desc_in_business_log()

        self.assertEqual(" " + user_account, operation_05)
        self.assertEqual(new_customer_data[1], target_account_05)
        self.assertEqual('网页端', operation_platform_05)
        web_desc_05 = "对用户%s从%s到%s执行转移客户操作" % (new_customer_data[1],
                                               user_account, user_account)
        self.assertEqual(web_desc_05, desc_05)

        self.driver.default_frame()