class TestCase54CommandManageCreateTemplateNormalMode(unittest.TestCase):
    """ 创建模板的异常操作--上报周期为普通模式 """
    # author:邓肖斌
    driver = None
    base_url = None
    base_page = None
    log_in_page = None
    command_management_page = None

    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.command_management_page = CommandManagementPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.command_management_page_read_csv = CommandManagementPageReadCsv()
        self.assert_text = AssertText()

        # 打开页面,填写用户名、密码、点击登录
        self.base_page.open_page()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)
        self.driver.clear_cookies()
        self.log_in_base.log_in()

        # 登录之后点击控制台,然后点击指令管理
        self.command_management_page.click_control_after_click_command_management(
        )
        sleep(3)

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

    def test_case_command_manage_create_template_normal_mode(self):
        # 断言url
        expect_url_after_click_command_management = self.base_url + '/custom/toTemplate'
        self.assertEqual(
            expect_url_after_click_command_management,
            self.command_management_page.actual_url_click_command_management())
        # 断言左侧列表的title文本
        expect_title_text_after_click_command_management = self.assert_text.command_manager_page_command_type(
        )
        self.assertEqual(
            expect_title_text_after_click_command_management,
            self.command_management_page.
            actual_title_text_after_click_command_management())

        # 点击工作模式模板管理
        self.command_management_page.click_lift_list(
            'work_type_template_management')
        # 断言右侧页面的title文本
        expect_title_text_after_click_work_type_template_management = \
            self.assert_text.command_manager_page_work_type_template_management()
        self.assertEqual(
            expect_title_text_after_click_work_type_template_management,
            self.command_management_page.
            actual_title_text_after_click_work_type_template_management())

        # 点击创建模板
        self.command_management_page.click_create_template()
        # 断言打开的创建模板的title文本
        expect_title_text_after_click_create_template = self.assert_text.command_manager_page_new_command_text(
        )
        self.assertEqual(
            expect_title_text_after_click_create_template,
            self.command_management_page.
            actual_title_text_after_click_create_template())

        # 点击星期模式
        self.command_management_page.click_normal_mode()

        # 验证创建模板的提示语
        template_name = self.command_management_page.get_create_template_name_text(
        )
        self.assertEqual(self.assert_text.command_manager_page_template_name(),
                         template_name)

        # 验证定时模式下输入框的规则
        # 模板名称 1 为空
        self.command_management_page.add_template_name_in_create_template('')
        self.command_management_page.click_ensure()
        get_name_text_fail = self.command_management_page.get_text_after_click_ensure(
        )
        self.assertEqual(self.assert_text.command_manager_page_not_null(),
                         get_name_text_fail)

        # wake up time 唤醒时间
        self.command_management_page.click_ensure()
        get_text_wake_up_time_fail = self.command_management_page.get_text_wake_up_time_fail(
        )
        self.assertEqual(self.assert_text.command_manager_page_not_null(),
                         get_text_wake_up_time_fail)

        # 限时周期
        # 限时周期
        # 为空
        self.command_management_page.click_ensure()
        get_text_fail_limit_cycle = self.command_management_page.get_text_fail_limit_cycles(
        )
        self.assertEqual(self.assert_text.command_manager_page_not_null(),
                         get_text_fail_limit_cycle)

        # 大于15
        self.command_management_page.add_limit_cycle_in_create_templates('91')
        self.command_management_page.click_ensure()
        get_text_fail_limit_cycle = self.command_management_page.get_text_fail_limit_cycles(
        )
        self.assertEqual(self.assert_text.command_manager_page_must_than_90(),
                         get_text_fail_limit_cycle)

        # 非正整数
        self.command_management_page.add_limit_cycle_in_create_templates('刷刷刷')
        self.command_management_page.click_ensure()
        get_text_fail_limit_cycle = self.command_management_page.get_text_fail_limit_cycles(
        )
        self.assertEqual(
            self.assert_text.command_manager_page_must_be_integer(),
            get_text_fail_limit_cycle)

        # 非正整数 大于15
        self.command_management_page.add_limit_cycle_in_create_templates(
            '2323刷刷刷')
        self.command_management_page.click_ensure()
        get_text_fail_limit_cycle = self.command_management_page.get_text_fail_limit_cycles(
        )
        get_texts_fail_limit_cycle = self.command_management_page.get_texts_fail_limit_cycles(
        )
        self.assertEqual(
            self.assert_text.command_manager_page_must_than_90() +
            self.assert_text.command_manager_page_must_be_integer(),
            get_text_fail_limit_cycle + get_texts_fail_limit_cycle)

        # 点击添加
        self.command_management_page.click_add_user_defined_template()
        # 验证是否添加成功
        number = self.command_management_page.get_total_number_template()
        self.assertEqual(2, number)

        # 点击删除
        self.command_management_page.click_delete_user_defined_template()
        number = self.command_management_page.get_total_number_template()
        self.assertEqual(1, number)
Exemplo n.º 2
0
class TestCase316CommandManagerAbnormalStateSendCommand(unittest.TestCase):
    # 测试 设置 - 指令管理 - 模板管理 - 异常状态imei下发指令
    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.command_management_page = CommandManagementPage(self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.command_management_page_read_csv = CommandManagementPageReadCsv()
        self.assert_text = AssertText()

        # 打开页面,填写用户名、密码、点击登录
        self.base_page.open_page()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)
        self.driver.clear_cookies()
        self.log_in_base.log_in_jimitest()

        # 登录之后点击控制台,然后点击指令管理
        self.command_management_page.click_control_after_click_command_management()
        sleep(3)

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

    def test_case_command_manage_abnormal_state_send_command(self):
        # 断言url
        expect_url_after_click_command_management = self.base_url + '/custom/toTemplate'
        self.assertEqual(expect_url_after_click_command_management,
                         self.command_management_page.actual_url_click_command_management())
        # 断言左侧列表的title文本
        expect_title_text_after_click_command_management = self.assert_text.command_manager_page_command_type()
        self.assertEqual(expect_title_text_after_click_command_management,
                         self.command_management_page.actual_title_text_after_click_command_management())

        # 点击工作模式模板管理
        self.command_management_page.click_lift_list('work_type_template_management')
        # 断言右侧页面的title文本
        expect_title_text_after_click_work_type_template_management = \
            self.assert_text.command_manager_page_work_type_template_management()
        self.assertEqual(expect_title_text_after_click_work_type_template_management,
                         self.command_management_page.actual_title_text_after_click_work_type_template_management())

        # 点击下发指令
        self.command_management_page.click_send_command()

        # 读取数据
        csv_file = self.command_management_page_read_csv.read_csv("send_command_with_abnormal_dev.csv")
        csv_data = csv.reader(csv_file)

        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            abnormal_state_data = {
                "state": row[0]
            }

            # 下发指令并获取文本
            send_command_text = self.command_management_page. \
                get_text_after_send_command_with_abnormal_dev(abnormal_state_data["state"])

            # 断言
            self.assertEqual(send_command_text, self.assert_text.
                             text_with_abnormal_dev_send_command(abnormal_state_data["state"]))

            # 关闭提示框
            self.command_management_page.close_send_command_fail_frame()
        csv_file.close()
Exemplo n.º 3
0
class TestCase312SetUpCommandManageCreateTemplate(unittest.TestCase):
    # 测试 设置 - 指令管理 - 创建模板异常操作--上报周期为定时模式
    driver = None
    base_url = None
    base_page = None
    log_in_page = None
    command_management_page = None

    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.command_management_page = CommandManagementPage(self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.command_management_page_read_csv = CommandManagementPageReadCsv()
        self.assert_text = AssertText()

        # 打开页面,填写用户名、密码、点击登录
        self.base_page.open_page()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)
        self.driver.clear_cookies()
        self.log_in_base.log_in()

        # 登录之后点击控制台,然后点击指令管理
        self.command_management_page.click_control_after_click_command_management()
        sleep(3)

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

    def test_case_set_up_command_manage_create_template(self):
        # 断言url
        expect_url_after_click_command_management = self.base_url + '/custom/toTemplate'
        self.assertEqual(expect_url_after_click_command_management,
                         self.command_management_page.actual_url_click_command_management())
        # 断言左侧列表的title文本
        expect_title_text_after_click_command_management = self.assert_text.command_manager_page_command_type()
        self.assertEqual(expect_title_text_after_click_command_management,
                         self.command_management_page.actual_title_text_after_click_command_management())

        # 点击工作模式模板管理
        self.command_management_page.click_lift_list('work_type_template_management')
        # 断言右侧页面的title文本
        expect_title_text_after_click_work_type_template_management = \
            self.assert_text.command_manager_page_work_type_template_management()
        self.assertEqual(expect_title_text_after_click_work_type_template_management,
                         self.command_management_page.actual_title_text_after_click_work_type_template_management())

        # 点击创建模板
        self.command_management_page.click_create_template()
        # 断言打开的创建模板的title文本
        expect_title_text_after_click_create_template = self.assert_text.command_manager_page_new_command_text()
        self.assertEqual(expect_title_text_after_click_create_template,
                         self.command_management_page.actual_title_text_after_click_create_template())

        # 验证创建模板的提示语
        template_name = self.command_management_page.get_create_template_name_text()
        self.assertEqual(self.assert_text.command_manager_page_template_name(), template_name)

        # 验证定时模式下输入框的规则
        # 模板名称 1 为空
        self.command_management_page.add_template_name_in_create_template('')
        self.command_management_page.click_ensure()
        get_name_text_fail = self.command_management_page.get_text_after_click_ensure()
        self.assertEqual(self.assert_text.command_manager_page_not_null(), get_name_text_fail)

        # 上班时间 为空
        self.command_management_page.click_ensure()
        get_report_time_text_fail = self.command_management_page.get_report_time_text_fail()
        self.assertEqual(self.assert_text.command_manager_page_not_null(), get_report_time_text_fail)

        # 循环上报天数 为空
        self.command_management_page.click_ensure()
        get_circulation_report_time_text_fail = self.command_management_page.get_circulation_report_time_text_fail()
        self.assertEqual(self.assert_text.command_manager_page_not_null(), get_circulation_report_time_text_fail)

        # 非正整数
        self.command_management_page.add_circulation_report_time('sssa')
        self.command_management_page.click_ensure()
        get_circulation_report_time_text_fail = self.command_management_page.get_circulation_report_time_text_fail()
        self.assertEqual(self.assert_text.command_manager_page_must_be_integer(), get_circulation_report_time_text_fail)

        # 大于90
        self.command_management_page.add_circulation_report_time('91')
        self.command_management_page.click_ensure()
        get_circulation_report_time_text_fail = self.command_management_page.get_circulation_report_time_text_fail()
        self.assertEqual(self.assert_text.command_manager_page_must_than_90(), get_circulation_report_time_text_fail)

        # 大于90且非正整数
        self.command_management_page.add_circulation_report_time('91fdsf')
        self.command_management_page.click_ensure()
        get_circulation_report_time_text_fail = self.command_management_page.get_circulation_report_time_text_fail()
        get_circulation_report_time_texts_fail = self.command_management_page.get_circulation_report_time_texts_fail()
        self.assertEqual(
            self.assert_text.command_manager_page_must_than_90() +
            self.assert_text.command_manager_page_must_be_integer(),
            get_circulation_report_time_text_fail + get_circulation_report_time_texts_fail)

        # 点击添加
        self.command_management_page.click_add_user_defined_template()
        # 验证是否添加成功
        number = self.command_management_page.get_total_number_template()
        self.assertEqual(2, number)

        # 点击删除
        self.command_management_page.click_delete_user_defined_template()
        number = self.command_management_page.get_total_number_template()
        self.assertEqual(1, number)
Exemplo n.º 4
0
class TestCase730816CustManageEditUserCommandLimit(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.quit_browser()

    def test_edit_account_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 = {
                "passwd": row[4],
                "command": row[9],
                "working_mode": row[10],
                "wdit_account": row[11]
            }

            # 登录
            self.log_in_base.log_in()

            # 进入客户管理页面
            self.cust_manage_basic_info_and_add_cust_page.enter_cust_manage()
            # 搜索账号
            self.cust_manage_lower_account_page.input_search_info(info["wdit_account"])
            # 搜索
            self.cust_manage_lower_account_page.click_search_btn()

            # 点击编辑用户
            self.cust_manage_basic_info_and_add_cust_page.click_edit_customer()
            self.cust_manage_basic_info_and_add_cust_page.click_cancel_edit()
            self.cust_manage_basic_info_and_add_cust_page.click_edit_customer()
            self.cust_manage_basic_info_and_add_cust_page.locate_to_iframe()

            # 是或否批量下发指令 和批量下发工作模式
            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.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(info["wdit_account"], info["passwd"])
            sleep(1)
            hello_usr = self.account_center_page_navi_bar.hello_user_account()
            self.assertIn(info["wdit_account"], hello_usr, "登录成功后招呼栏账户名显示错误")
            sleep(1)

            # 进入设备管理/指令管理页面,获取功能按钮
            facility_manage_data = self.cust_manage_basic_info_and_add_cust_page.get_facility_manage_page_function_button()
            sleep(2)
            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.log_in_base.click_account_center_button()
            sleep(2)
            self.account_center_page_navi_bar.usr_logout()
            break
        csv_file.close()
Exemplo n.º 5
0
class TestCase303SetUpWorkTypeTemplateManagementCreatTemplate(
        unittest.TestCase):
    # 测试设置 - 指令管理 - 模板管理 - 创建模板
    driver = None
    base_url = None
    base_page = None
    log_in_page = None
    command_management_page = None

    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.command_management_page = CommandManagementPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.command_management_page_read_csv = CommandManagementPageReadCsv()
        self.assert_text = AssertText()

        # 打开页面,填写用户名、密码、点击登录
        self.base_page.open_page()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)
        self.driver.clear_cookies()
        self.log_in_base.log_in()

        # 登录之后点击控制台,然后点击指令管理
        self.command_management_page.click_control_after_click_command_management(
        )
        sleep(3)

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

    def test_case_set_up_work_type_template_management_creat_template(self):
        # 断言url
        expect_url_after_click_command_management = self.base_url + '/custom/toTemplate'
        self.assertEqual(
            expect_url_after_click_command_management,
            self.command_management_page.actual_url_click_command_management())
        # 断言左侧列表的title文本
        expect_title_text_after_click_command_management = self.assert_text.command_manager_page_command_type(
        )
        self.assertEqual(
            expect_title_text_after_click_command_management,
            self.command_management_page.
            actual_title_text_after_click_command_management())

        # 点击工作模式模板管理
        self.command_management_page.click_lift_list(
            'work_type_template_management')
        # 断言右侧页面的title文本
        expect_title_text_after_click_work_type_template_management = \
            self.assert_text.command_manager_page_work_type_template_management()
        self.assertEqual(
            expect_title_text_after_click_work_type_template_management,
            self.command_management_page.
            actual_title_text_after_click_work_type_template_management())

        # 点击创建模板
        self.command_management_page.click_create_template()
        # 断言打开的创建模板的title文本
        expect_title_text_after_click_create_template = self.assert_text.command_manager_page_new_command_text(
        )
        self.assertEqual(
            expect_title_text_after_click_create_template,
            self.command_management_page.
            actual_title_text_after_click_create_template())
        # 关闭创建模板
        self.command_management_page.click_close_create_template()
        # 断言是否关闭成功
        self.assertEqual(
            expect_title_text_after_click_work_type_template_management,
            self.command_management_page.
            actual_title_text_after_click_work_type_template_management())

        # 点击创建模板
        self.command_management_page.click_create_template()
        # 断言打开的创建模板的title文本
        self.assertEqual(
            expect_title_text_after_click_create_template,
            self.command_management_page.
            actual_title_text_after_click_create_template())
        # 取消创建模板
        self.command_management_page.click_cancel_create_template()
        # 断言是否关闭成功
        self.assertEqual(
            expect_title_text_after_click_work_type_template_management,
            self.command_management_page.
            actual_title_text_after_click_work_type_template_management())

        # 输入参数
        csv_file = self.command_management_page_read_csv.read_csv(
            'work_template_time_data.csv')
        csv_data = csv.reader(csv_file)

        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            work_template_time_data = {
                'name': row[0],
                'type': row[1],
                'day': row[2],
                'circulation': row[3],
                'circulation_day': row[4],
                'week': row[5],
                'circulation1': row[6],
                'circulation_day1': row[7],
                'jiange': row[8],
                'circulation2': row[9],
                'circulation_day2': row[10],
            }
            # 点击创建模板
            self.command_management_page.click_create_template()
            # 断言打开的创建模板的title文本
            self.assertEqual(
                expect_title_text_after_click_create_template,
                self.command_management_page.
                actual_title_text_after_click_create_template())
            sleep(5)
            self.command_management_page.add_create_template_data(
                work_template_time_data)
            # 点击保存
            self.command_management_page.create_template_click_ensure()
            sleep(2)
            # 点击删除
            self.command_management_page.delete_add_new_template()
        csv_file.close()
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()
class TestCase304SetUpWorkTypeTemplateManagementOperation(unittest.TestCase):
    # 测试 设置 - 指令管理 - 模板管理 - 模板操作

    driver = None
    base_url = None
    base_page = None
    log_in_page = None
    command_management_page = None

    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.command_management_page = CommandManagementPage(self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.command_management_page_read_csv = CommandManagementPageReadCsv()
        self.assert_text = AssertText()

        # 打开页面,填写用户名、密码、点击登录
        self.base_page.open_page()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)
        self.driver.clear_cookies()
        self.log_in_base.log_in()

        # 登录之后点击控制台,然后点击指令管理
        self.command_management_page.click_control_after_click_command_management()
        sleep(3)

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

    def test_case_set_up_work_type_template_management_operation(self):
        # 断言url
        expect_url_after_click_command_management = self.base_url + '/custom/toTemplate'
        self.assertEqual(expect_url_after_click_command_management,
                         self.command_management_page.actual_url_click_command_management())
        # 断言左侧列表的title文本
        expect_title_text_after_click_command_management = self.assert_text.command_manager_page_command_type()
        self.assertEqual(expect_title_text_after_click_command_management,
                         self.command_management_page.actual_title_text_after_click_command_management())

        # 点击工作模式模板管理
        self.command_management_page.click_lift_list('work_type_template_management')
        # 断言右侧页面的title文本
        expect_title_text_after_click_work_type_template_management = \
            self.assert_text.command_manager_page_work_type_template_management()
        self.assertEqual(expect_title_text_after_click_work_type_template_management,
                         self.command_management_page.actual_title_text_after_click_work_type_template_management())

        # 点击修改
        self.command_management_page.work_template_operation_revise()
        # 断言
        expect_title_text_after_click_create_template = self.assert_text.command_manager_page_new_command_text()
        self.assertEqual(expect_title_text_after_click_create_template,
                         self.command_management_page.actual_title_text_after_click_create_template())
        # 取消修改模板
        self.command_management_page.click_cancel_create_template()
        # 断言是否关闭成功
        self.assertEqual(expect_title_text_after_click_work_type_template_management,
                         self.command_management_page.actual_title_text_after_click_work_type_template_management())

        # 点击修改
        self.command_management_page.work_template_operation_revise()
        # 断言
        self.assertEqual(expect_title_text_after_click_create_template,
                         self.command_management_page.actual_title_text_after_click_create_template())
        # 关闭修改模板
        self.command_management_page.click_close_create_template()
        # 断言是否关闭成功
        self.assertEqual(expect_title_text_after_click_work_type_template_management,
                         self.command_management_page.actual_title_text_after_click_work_type_template_management())

        # 点击修改
        self.command_management_page.work_template_operation_revise()
        # 断言
        self.assertEqual(expect_title_text_after_click_create_template,
                         self.command_management_page.actual_title_text_after_click_create_template())
        # 点击保存
        self.command_management_page.create_template_click_ensure()
        # 断言
        self.assertEqual(expect_title_text_after_click_work_type_template_management,
                         self.command_management_page.actual_title_text_after_click_work_type_template_management())

        # 点击删除
        self.command_management_page.work_template_operation_delete()
        # 断言
        expect_text_after_click_delete = self.assert_text.command_manager_page_ensure_text()
        self.assertEqual(expect_text_after_click_delete, self.command_management_page.actual_text_after_click_delete())
        # 点击取消
        self.command_management_page.cancel_work_template_operation_delete()
        # 断言
        self.assertEqual(expect_title_text_after_click_work_type_template_management,
                         self.command_management_page.actual_title_text_after_click_work_type_template_management())

        # 点击删除
        self.command_management_page.work_template_operation_delete()
        # 断言
        self.assertEqual(expect_text_after_click_delete, self.command_management_page.actual_text_after_click_delete())
        # 点击关闭
        self.command_management_page.close_work_template_operation_delete()
        # 断言
        self.assertEqual(expect_title_text_after_click_work_type_template_management,
                         self.command_management_page.actual_title_text_after_click_work_type_template_management())
class TestCase55CommandManageCreateTemplateModifyTemplate(unittest.TestCase):
    driver = None
    base_url = None
    base_page = None
    log_in_page = None
    command_management_page = None

    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.command_management_page = CommandManagementPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.command_management_page_read_csv = CommandManagementPageReadCsv()
        self.assert_text = AssertText()

        # 打开页面,填写用户名、密码、点击登录
        self.base_page.open_page()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)
        self.driver.clear_cookies()
        self.log_in_base.log_in()

        # 登录之后点击控制台,然后点击指令管理
        self.command_management_page.click_control_after_click_command_management(
        )
        sleep(3)

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

    def test_case_command_manage_create_template_modify_template(self):
        # 断言url
        expect_url_after_click_command_management = self.base_url + '/custom/toTemplate'
        self.assertEqual(
            expect_url_after_click_command_management,
            self.command_management_page.actual_url_click_command_management())
        # 断言左侧列表的title文本
        expect_title_text_after_click_command_management = self.assert_text.command_manager_page_command_type(
        )
        self.assertEqual(
            expect_title_text_after_click_command_management,
            self.command_management_page.
            actual_title_text_after_click_command_management())

        # 点击工作模式模板管理
        self.command_management_page.click_lift_list(
            'work_type_template_management')
        # 断言右侧页面的title文本
        expect_title_text_after_click_work_type_template_management = \
            self.assert_text.command_manager_page_work_type_template_management()
        self.assertEqual(
            expect_title_text_after_click_work_type_template_management,
            self.command_management_page.
            actual_title_text_after_click_work_type_template_management())

        # 获取第一个模板的名称
        get_template_name = self.command_management_page.get_template_name()
        print('当前模板名称为:%s' % get_template_name)

        # 点击修改模板
        self.command_management_page.click_modify_template_button()

        # 获取点击修改后的模板名称
        get_template_name_again = self.command_management_page.get_template_name_again(
        )
        print('修改之后的模板名称为:%s' % get_template_name_again)
        self.assertIn(get_template_name, get_template_name_again)

        self.command_management_page.add_template_name_in_create_template('')
        self.command_management_page.click_ensure()
        get_name_text_fail = self.command_management_page.get_text_after_click_ensure(
        )
        self.assertEqual(self.assert_text.command_manager_page_not_null(),
                         get_name_text_fail)