class TestCase168OnLineFormOperation(unittest.TestCase):
    def setUp(self):
        # 前置条件
        # 实例化对象
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.statistical_form_page = StatisticalFormPage(
            self.driver, self.base_url)
        self.statistical_form_page_read_csv = StatisticalFormPageReadCsv()
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.assert_text = AssertText()
        # 打开页面,填写用户名、密码、点击登录
        self.base_page.open_page()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)
        self.log_in_base.log_in_jimitest()

        # 登录之后点击控制台,然后点击设置
        self.statistical_form_page.click_control_after_click_statistical_form_page(
        )
        sleep(3)

    def tearDown(self):
        # 退出浏览器
        self.driver.quit_browser()

    def test_case_on_line_form_operation(self):
        # 断言url
        expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport'
        self.assertEqual(
            expect_url_after_click_statistical_form,
            self.statistical_form_page.actual_url_after_statistical_form())

        # 点击离线统计
        self.statistical_form_page.click_on_line_form_button()

        # 断言文本
        text = self.statistical_form_page.get_text_after_click_on_line_form_button(
        )
        self.assertEqual(self.assert_text.statistical_form_on_line_form(),
                         text)

        # # 循环客户树
        for n in range(5):
            get_select_account = self.statistical_form_page.get_select_account_in_on_line_form(
                n)
            self.statistical_form_page.click_customer_in_on_line(n)
            get_search_input_account = self.statistical_form_page.get_search_input_account_in_on_line_form(
            )
            self.assertEqual(get_search_input_account, get_select_account)
        # 搜索客户树无数据
        self.statistical_form_page.add_data_to_search_customer_in_on_line(
            '无数据')
        sleep(3)
        text = self.statistical_form_page.get_text_after_click_search_in_on_line(
        )
        self.assertIn(self.assert_text.account_center_page_no_data_text(),
                      text)
예제 #2
0
class TestCase68CustManageCustBatchTransferCustSearch(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriverServer(choose='chrome')
        self.base_url = self.driver.base_url
        self.base_page = BasePageServer(self.driver, self.base_url)
        self.login_page = LoginPage(self.driver, self.base_url)
        self.cust_manage_basic_info_and_add_cust_page = CustManageBasicInfoAndAddCustPage(self.driver, self.base_url)
        self.cust_manage_cust_list_page = CustManageCustListPage(self.driver, self.base_url)
        self.cust_manage_my_dev_page = CustManageMyDevPage(self.driver, self.base_url)
        self.cust_manage_lower_account_page = CustManageLowerAccountPage(self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPage(self.driver, self.base_url)
        self.driver.set_window_max()
        self.log_in_base = LogInBaseServer(self.driver, self.base_url)
        self.cust_manage_page_read_csv = CustManagePageReadCsv()
        self.assert_text = AssertText()
        self.connect_sql = ConnectSql()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

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

    def test_cust_manage_batch_transfer_cust_search(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录
        self.log_in_base.log_in()
        sleep(1)

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

        self.cust_manage_basic_info_and_add_cust_page.click_first_account()

        # 点击编辑用户
        self.cust_manage_basic_info_and_add_cust_page.click_batch_transfer_customer()

        self.cust_manage_basic_info_and_add_cust_page.click_cancel_edit()

        self.cust_manage_basic_info_and_add_cust_page.click_batch_transfer_customer()
        # 循环点击五次
        for n in range(5):
            self.cust_manage_basic_info_and_add_cust_page.locate_to_iframe()
            self.driver.click_element('x,//*[@id="treeDemo2_%s_span"]' % str(n + 3))
            sleep(2)
            self.driver.default_frame()

        # 搜索
        # 1 搜索无数据的内容
        self.cust_manage_basic_info_and_add_cust_page.search_cust('无数据')
        get_text = self.cust_manage_basic_info_and_add_cust_page.get_search_no_data_text()
        self.assertIn(self.assert_text.account_center_page_no_data_text(), get_text)
예제 #3
0
class TestCase98DevManagePagingFunction(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.dev_manage_page = DevManagePages(self.driver, self.base_url)
        self.driver.set_window_max()
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.dev_manage_page_read_csv = DevManagePageReadCsv()
        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_dev_manager_paging_function(self):
        '''测试设备管理-设备搜索-by imei'''

        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录
        self.log_in_base.log_in_jimitest()
        # 点击进入设备管理
        self.dev_manage_page.enter_dev_manage()

        # 全部设备_分页默认显示每页20条
        # get_paging_text = self.dev_manage_page.get_paging_text()
        # self.assertEqual(self.assert_text.per_20_page(), get_paging_text)

        # 获取总共有多少页
        total_page_number = self.dev_manage_page.get_total_page_number_in_dev_manager()

        if total_page_number == 1:
            get_up_page_state = self.dev_manage_page.get_up_page_state()
            self.assertEqual('active', get_up_page_state)

            get_next_page_state = self.dev_manage_page.get_next_page_state()
            self.assertEqual('active', get_next_page_state)

        elif total_page_number == 0:
            text = self.dev_manage_page.get_search_no_dev_name_text()
            self.assertIn(self.assert_text.account_center_page_no_data_text(), text)

        else:
            for n in range(total_page_number):
                self.dev_manage_page.click_per_page(n + 1)

        if total_page_number != 0:
            self.dev_manage_page.click_per_number()
class TestCase64CustManageSearch(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriverServer(choose='chrome')
        self.base_url = self.driver.base_url
        self.base_page = BasePageServer(self.driver, self.base_url)
        self.login_page = LoginPage(self.driver, self.base_url)
        self.cust_manage_basic_info_and_add_cust_page = CustManageBasicInfoAndAddCustPage(self.driver, self.base_url)
        self.cust_manage_cust_list_page = CustManageCustListPage(self.driver, self.base_url)
        self.cust_manage_my_dev_page = CustManageMyDevPage(self.driver, self.base_url)
        self.cust_manage_lower_account_page = CustManageLowerAccountPage(self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPage(self.driver, self.base_url)
        self.driver.set_window_max()
        self.log_in_base = LogInBaseServer(self.driver, self.base_url)
        self.cust_manage_page_read_csv = CustManagePageReadCsv()
        self.connect_sql = ConnectSql()
        self.assert_text = AssertText()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

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

    def test_cust_manage_search(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录
        self.log_in_base.log_in()

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

        # 循环点击5次
        for n in range(5):
            self.driver.click_element('x,//*[@id="treeDemo_%s_span"]' % str(n + 2))
            sleep(2)
            text = self.driver.get_text('x,//*[@id="treeDemo_%s_span"]' % str(n + 2))
            account_name = text.split('(')[0]
            value = self.driver.get_text('x,//*[@id="user_account"]')
            self.assertEqual(account_name, value)

        # 搜索无数据
        self.cust_manage_basic_info_and_add_cust_page.search_customer('无数据')
        get_text = self.cust_manage_basic_info_and_add_cust_page.get_search_customer_no_data_text()
        self.assertIn(self.assert_text.account_center_page_no_data_text(), get_text)
class TestCase80DevManageSearchCustomer(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.dev_manage_page = DevManagePages(self.driver, self.base_url)
        self.driver.set_window_max()
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.dev_manage_page_read_csv = DevManagePageReadCsv()
        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_case_dev_manage_search_customer(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录
        self.log_in_base.log_in()
        # 点击进入设备管理
        self.dev_manage_page.enter_dev_manage()

        # 循环点击5次
        for n in range(5):
            self.driver.click_element(
                'x,//*[@id="treeDemo_deviceManage_%s_span"]' % str(n + 2))
            sleep(2)
            # 判断数量
            get_account_dev_number = self.driver.get_text(
                'x,//*[@id="treeDemo_deviceManage_%s_span"]' % str(n + 2))
            number = get_account_dev_number.split('(')[1].split('/')[0]

            dev_number = self.dev_manage_page.get_dev_number()
            self.assertEqual(number, str(dev_number))

        # 搜索无数据
        self.dev_manage_page.search_customer('无数据')
        get_text = self.dev_manage_page.get_search_customer_no_data_text()
        self.assertIn(self.assert_text.account_center_page_no_data_text(),
                      get_text)
예제 #6
0
class TestCase187ClockInForm(unittest.TestCase):
    def setUp(self):
        # 前置条件
        # 实例化对象
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.statistical_form_page = StatisticalFormPage(
            self.driver, self.base_url)
        self.statistical_form_page_read_csv = StatisticalFormPageReadCsv()
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.search_sql = SearchSql(self.driver, self.base_url)
        self.obd_form_page = ObdFormPage(self.driver, self.base_url)
        self.clock_in_page = ClockInPage(self.driver, self.base_url)
        # 打开页面,填写用户名、密码、点击登录
        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.assert_text = AssertText()

        # 登录之后点击控制台,然后点击设置
        self.statistical_form_page.click_control_after_click_statistical_form_page(
        )
        sleep(3)

    def tearDown(self):
        # 退出浏览器
        self.driver.quit_browser()

    def test_case_clock_in_form(self):
        # 断言url
        expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport'
        self.assertEqual(
            expect_url_after_click_statistical_form,
            self.statistical_form_page.actual_url_after_statistical_form())

        # 点击打卡记录
        self.clock_in_page.click_clock_in_form_button()
        # 切换到打开记录的frame里面
        self.clock_in_page.switch_to_click_in_form_frame()

        csv_file = self.statistical_form_page_read_csv.read_csv(
            'clock_in_form_data.csv')
        csv_data = csv.reader(csv_file)
        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            data = {
                'date_type': row[0],
                'begin_time': row[1],
                'end_time': row[2],
                'dev_type': row[3],
                'dev_imei': row[4],
                'clock_in_type': row[5]
            }
            self.clock_in_page.add_data_to_search_click_in_form(data)
            # get_sql_data = self.clock_in_page.get_sql_data_in_clock_in_form(data)
            begin_time = self.clock_in_page.get_begin_time_in_clock_in_form()
            end_time = self.clock_in_page.get_end_time_in_clock_in_form()

            request_url = request_base_url()
            if data['clock_in_type'] != 'all':
                header = {
                    '_method_': 'getClock',
                    'imeis': self.clock_in_page.get_dev_imei(),
                    'startTime': begin_time,
                    'endTime': end_time,
                    'clockType': data['clock_in_type']
                }
            else:
                header = {
                    '_method_': 'getClock',
                    'imeis': self.clock_in_page.get_dev_imei(),
                    'startTime': begin_time,
                    'endTime': end_time
                }
            sleep(10)
            res_json = requests.post(request_url, data=header).json()

            web_list = []
            # 获取查询的页数
            number = self.clock_in_page.get_page_number_after_search_clock_in_form(
            )
            if number == 0:
                text = self.clock_in_page.get_no_data_text_in_clock_form()
                self.assertIn(
                    self.assert_text.account_center_page_no_data_text(), text)

            elif number == 1:
                # 获取每一页的条数
                per_page_number = self.clock_in_page.get_per_page_number_in_clock_in_form(
                )
                for n in range(per_page_number):
                    web_list.append({
                        'imei':
                        self.clock_in_page.get_imei_in_clock_in_form(n),
                        'gpsTime':
                        self.clock_in_page.get_time_in_clock_form(n),
                        'clockType':
                        self.clock_in_page.get_on_off_in_clock_form(n),
                        'addr':
                        self.clock_in_page.get_addr_in_clock_form(n)
                    })
                res_data = res_json['data']
                for data in res_data:
                    del data['lat'], data['lng'], data['posMode']
                print(res_data)
                print(web_list)
                self.assertEqual(res_data, web_list)
            else:
                # 循环点击每一页
                for n in range(number):
                    self.clock_in_page.click_per_page(n)
                    per_page_number = self.clock_in_page.get_per_page_number_in_clock_in_form(
                    )
                    for n in range(per_page_number):
                        web_list.append({
                            'imei':
                            self.clock_in_page.get_imei_in_clock_in_form(n),
                            'gpsTime':
                            self.clock_in_page.get_time_in_clock_form(n),
                            'clockType':
                            self.clock_in_page.get_on_off_in_clock_form(n),
                            'addr':
                            self.clock_in_page.get_addr_in_clock_form(n)
                        })
                res_data = res_json['data']
                for data in res_data:
                    del data['lat'], data['lng'], data['posMode']
                print(res_data)
                print(web_list)
                self.assertEqual(res_data, web_list)
        self.driver.default_frame()
class TestCase155SportStatisticalParkingFormExceptionSearch(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.statistical_form_page = StatisticalFormPage(self.driver, self.base_url)
        self.statistical_form_page2 = StatisticalFormPage2(self.driver, self.base_url)
        self.statistical_form_page_read_csv = StatisticalFormPageReadCsv()
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.assert_text = AssertText()
        # 打开页面,填写用户名、密码、点击登录
        self.base_page.open_page()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)

    def test_parking_form_exception_search(self):
        """
         停车未熄火报表页面,异常搜索数据验证
        """
        # 登录
        self.log_in_base.log_in_jimitest()
        # 点击进入统计报表、停车未熄火报表
        self.statistical_form_page.click_control_after_click_statistical_form_page()
        self.statistical_form_page.click_paking_not_shut_down_form_button()

        # 取开始、结束时间
        type = ["今天", "本周", "昨天", "上周", "本月", "上月", "自定义"]
        data = ["暂无数据"]

        for time in type:
            time = self.statistical_form_page2.parking_not_shut_down_form_validation_time(time)
            self.assertEqual(time["page_time"]["page_start_time"], time["sql_time"]["sql_start_time"], "实际与显示的开始时间不相符")
            self.assertEqual(time["page_time"]["page_end_time"], time["sql_time"]["sql_end_time"], "实际与显示的结束时间不相符")

        # 验证提示
        for user in data:
            text = self.statistical_form_page2.search_inexistence_user(user)
            print(text)
            self.assertIn(user, text, "搜索后的数据不存在实际搜索出的数据中")

        # 验证搜索下级的imei可以搜索到
        # 填写下级的imei搜索
        sleep(2)
        self.statistical_form_page2.input_imei_to_search_in_paking_form(self.statistical_form_page2.get_imei())
        # 断言
        # 获取查询设备的imei
        search_imei = self.statistical_form_page2.get_search_imei_in_paking_form()
        self.assertEqual(search_imei, self.statistical_form_page2.get_imei())

        # 验证停机的设备无法搜索到
        self.statistical_form_page2.input_imei_to_search_in_paking_form(
            self.statistical_form_page2.get_shut_down_imei())
        # 获取搜索的数量
        get_number_after_search = self.statistical_form_page.get_number_after_search_in_paking_form()
        self.assertEqual(0, get_number_after_search)

        get_text_after_search = self.statistical_form_page.get_text_after_search_in_paking_form()
        self.assertIn(self.assert_text.account_center_page_no_data_text(), get_text_after_search)

        # 验证未激活的设备无法搜索到
        self.statistical_form_page2.input_imei_to_search_in_paking_form(
            self.statistical_form_page2.get_no_active_imei())
        # 获取搜索的数量
        get_number_after_search = self.statistical_form_page.get_number_after_search_in_paking_form()
        self.assertEqual(0, get_number_after_search)

        get_text_after_search = self.statistical_form_page.get_text_after_search_in_paking_form()
        self.assertIn(self.assert_text.account_center_page_no_data_text(), get_text_after_search)

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

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

    def test_case_app_user_search_paging_function(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        self.log_in_base.log_in_jimitest()
        self.log_in_base.click_account_center_button()
        self.global_dev_search_page.click_easy_search()
        # 关闭
        self.global_dev_search_page.close_search()
        sleep(2)
        self.global_dev_search_page.click_easy_search()
        self.global_dev_search_page.click_app_account_search()
        # 点击搜索
        # self.global_dev_search_page.click_search_buttonss()

        # 获取页面的总数
        self.global_dev_search_page.swith_to_search_frame()
        total_page = self.global_dev_search_page.get_total_page_after_click_app_search(
        )
        if total_page[0] == 0:
            text = self.global_dev_search_page.get_no_data_text_in_app_user_search(
            )
            self.assertIn(self.assert_text.account_center_page_no_data_text(),
                          text)

        elif total_page[0] == 1:
            get_previous_page_class = self.global_dev_search_page.get_previous_page_class_in_app_user_search(
            )
            self.assertEqual('active', get_previous_page_class)

            get_next_page_class = self.global_dev_search_page.get_next_page_class_in_app_user_search(
            )
            self.assertEqual('active', get_next_page_class)

            list = [20, 30, 50, 100]
            for m in list:
                self.global_dev_search_page.click_per_page_number()
                total_page_again = self.global_dev_search_page.get_total_page_after_click_app_search(
                )
                self.assertEqual(total_page, total_page_again)

        else:
            for n in range(total_page[0]):
                self.global_dev_search_page.click_per_page(n)
                get_per_first_number = self.global_dev_search_page.get_per_frist_number_in_dev_searchs(
                )
                self.assertEqual(get_per_first_number, str(10 * (n + 1) - 9))
class TestCase450919AccountCenterRefillCardRefillRecordSearch(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.connect_sql = ConnectSql()
        self.search_sql = SearchSql()
        self.assert_text = AssertText()
        self.driver.set_window_max()
        self.account_center_page_read_csv = AccountCenterPageReadCsv()
        self.log_in_base = LogInBaseServer(self.driver, self.base_page)
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

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

    def test_refill_record_search(self):
        '''充值卡-充值记录--搜索'''
        csv_file = self.account_center_page_read_csv.read_csv('search_refill_record_data.csv')
        csv_data = csv.reader(csv_file)

        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录账号
        self.log_in_base.log_in()
        self.driver.wait(1)
        self.account_center_page_navi_bar.click_account_center_button()
        # 进入充值卡页面
        # self.account_center_page_navi_bar.switch_to_chongzhi_card()
        self.account_center_page_refill_card.click_refill_card()

        # 验证页面顶部我的账号
        my_account = self.account_center_page_refill_card.get_title_display_account()
        self.assertIn(self.account_center_page_refill_card.get_current_login_account(), my_account, "登录账号显示一致")

        for row in csv_data:
            data = {
                "refill_type": row[0],
                "device_imei": row[1]

            }
            # 点击充值记录
            self.account_center_page_refill_card.click_refill_record()
            # 搜索
            count = self.account_center_page_refill_card.refill_record_search_data(data["refill_type"],
                                                                                   data["device_imei"])
            # 验证imei计数
            self.assertEqual(count["import_count"], int(count["add_count"]), "输入框中imei的计数显示错误")

            # 获取页面列表条数
            page_number = self.account_center_page_refill_card.get_refill_record_number()

            # 获取当前账号id
            sql_data = self.search_sql.search_current_account_data(my_account)

            connect1 = self.connect_sql.connect_tuqiang_sql()
            # 创建数据库游标
            cur = connect1.cursor()
            # 获取数据库条数
            get_sql = self.search_sql.search_refill_record_sql(sql_data[0], data)
            print(get_sql)
            cur.execute(get_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)

            # 获取数据库条数
            self.assertEqual(total, page_number, "转移记录中,平台与sql搜索出来的数据条数不一致")
        # 点击充值记录
        self.account_center_page_refill_card.click_refill_record()
        # 获取设备有多少个分页
        total_page = self.account_center_page_refill_card.get_total_page_number_search_refill_record()
        print(total_page)
        if total_page[0] == 0:
            text = self.account_center_page_refill_card.get_refill_record_page_no_data_text()
            self.assertIn(self.assert_text.account_center_page_no_data_text(), text)

        elif total_page[0] == 1:
            up_page_class = self.account_center_page_refill_card.get_up_page_class_active_in_refill_search()
            self.assertEqual('active', up_page_class)

        else:
            for n in range(total_page[0]):
                self.account_center_page_refill_card.click_per_page(n)
                get_per_first_number = self.account_center_page_refill_card.get_per_frist_number_in_refill_search()
                self.assertEqual(get_per_first_number, str(10 * (n + 1) - 9))

            # 点击每页20条
            list = [20, 30, 50, 100]
            for m in list:
                self.account_center_page_refill_card.click_per_page_number_refill_record()
                page_number = self.account_center_page_refill_card.get_page_number_in_refill_record_search()
                print(page_number)
                self.assertEqual(int(total_page[1] / m) + 1, page_number)

        csv_file.close()
class TestCase88DevManageSaleInList(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.dev_manage_page = DevManagePages(self.driver, self.base_url)
        self.driver.set_window_max()
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.dev_manage_page_read_csv = DevManagePageReadCsv()
        self.connect_sql = ConnectSql()
        self.assert_text = AssertText()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

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

    def test_case_dev_manage_sale_in_list(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录
        self.log_in_base.log_in()
        # 点击进入设备管理
        self.dev_manage_page.enter_dev_manage()
        imei_in_list = self.dev_manage_page.get_imei_in_list()
        dev_type_in_list = self.dev_manage_page.get_dev_type_in_list()

        # 点击批量
        self.dev_manage_page.click_sale_in_list_button()

        self.dev_manage_page.click_close_sale_in_list_button()

        self.dev_manage_page.click_sale_in_list_button()

        # 点击销售
        self.dev_manage_page.click_sale_button()

        # 获取打开销售之后的imei和设备类型
        imei_in_sale = self.dev_manage_page.get_imei_in_sale()
        self.assertEqual(imei_in_list, imei_in_sale)
        dev_type_in_sale = self.dev_manage_page.get_dev_type_in_sale()
        self.assertEqual(dev_type_in_list, dev_type_in_sale)
        dev_account_name = self.dev_manage_page.get_dev_account_name()

        connect = self.connect_sql.connect_tuqiang_sql()
        cursor = connect.cursor()
        get_account_sql = "select o.account from equipment_mostly e inner join user_info o on e.userId = o.userId where e.imei = '%s';" % imei_in_list
        cursor.execute(get_account_sql)
        account_data = cursor.fetchall()
        account = account_data[0][0]
        cursor.close()
        connect.close()

        self.assertEqual(dev_account_name, account)

        # 搜索右侧客户树
        # 循环点击5次
        for n in range(5):
            self.driver.click_element(
                'x,//*[@id="treeDemo_device_sale_id_%s_span"]' % str(n + 1))
            sleep(2)
            # 判断数量
            get_account_dev_number = self.driver.get_text(
                'x,//*[@id="treeDemo_device_sale_id_%s_span"]' % str(n + 1))

            name = self.dev_manage_page.get_select_account_name()
            self.assertEqual(get_account_dev_number, name)

        # 搜索无数据
        self.dev_manage_page.search_customer_after_click_batch_sale_dev('无数据')
        get_text = self.dev_manage_page.get_search_customer_no_data_text_after_batch_sale_dev(
        )
        self.assertIn(self.assert_text.account_center_page_no_data_text(),
                      get_text)

        # 获取选中设备的数量
        dev_number = self.dev_manage_page.get_select_dev_number()

        # 获取抬头设备统计的数量
        dev_numbers_count = self.dev_manage_page.get_dev_numbers()
        self.assertEqual(str(dev_number), dev_numbers_count)

        # 删除设备后 点击销售
        self.dev_manage_page.click_detele_dev()
        self.dev_manage_page.click_sale_button()

        ### 添加设备
        # 成功添加的
        self.dev_manage_page.add_dev_to_sale(imei_in_list)

        # 添加重复的
        self.dev_manage_page.add_dev_to_sale(imei_in_list)

        # 获取失败后的imei
        imei_after_add_fail = self.dev_manage_page.get_imei_after_add_fail()
        self.assertEqual(imei_in_list, imei_after_add_fail)

        status = self.dev_manage_page.get_status_after_add_fail()
        self.assertEqual(self.assert_text.dev_page_fail_text(), status)

        fail_reason = self.dev_manage_page.get_fail_reason()
        self.assertEqual(self.assert_text.dev_page_repetition_text(),
                         fail_reason)
        self.dev_manage_page.click_close_fails()

        # 添加不存在的imei
        self.dev_manage_page.add_dev_to_sale('我就是要添加不存在的')
        # 获取失败后的imei
        imei_after_add_fail = self.dev_manage_page.get_imei_after_add_fail()
        self.assertEqual('我就是要添加不存在的', imei_after_add_fail)

        status = self.dev_manage_page.get_status_after_add_fail()
        self.assertEqual(self.assert_text.dev_page_fail_text(), status)

        fail_reason = self.dev_manage_page.get_fail_reason()
        self.assertEqual(self.assert_text.dev_page_inexistence_text(),
                         fail_reason)
        self.dev_manage_page.click_close_fails()
예제 #11
0
class TestCase110GlobSearchDevDetail(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.global_dev_search_page = GlobalDevSearchPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPages(
            self.driver, self.base_url)
        self.driver.set_window_max()
        self.global_account_search_page = GlobalAccountSearchPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.global_search_page_read_csv = GlobleSearchPageReadCsv()
        self.search_sql = SearchSql()
        self.driver.wait(1)
        self.connect_sql = ConnectSql()
        self.assert_text = AssertText()
        self.driver.clear_cookies()
        self.driver.wait(1)

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

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

        self.global_dev_search_page.click_easy_search()

        # 选择用户搜索
        self.global_dev_search_page.click_dev_searchs()
        # self.global_dev_search_page.click_dev_search_button()
        self.global_dev_search_page.click_detail_in_dev_search()
        dev_name_in_detail = self.global_dev_search_page.get_dev_name_in_detail(
        )
        dev_imei_in_detail = self.global_dev_search_page.get_dev_imei_in_detail(
        )
        dev_type_in_detail = self.global_dev_search_page.get_dev_type_in_detail(
        )
        dev_active_time_in_detail = self.global_dev_search_page.get_dev_active_time_in_detail(
        )
        dev_expire_time_in_detail = self.global_dev_search_page.get_dev_expire_time_in_detail(
        )

        # 点击轨迹回放
        current_handle = self.driver.get_current_window_handle()
        self.global_dev_search_page.click_track_play_button_in_dev_detail()
        all_handles = self.driver.get_all_window_handles()
        for handle in all_handles:
            if handle != current_handle:
                self.driver.switch_to_window(handle)

                self.assertEqual(
                    self.base_url +
                    '/trackreplay/locus?imei=%s' % dev_imei_in_detail,
                    self.driver.get_current_url())
                # 获取页面的抬头的文字
                text = self.global_dev_search_page.get_text_after_click_track_play(
                )
                self.assertEqual(self.assert_text.dev_page_track_replay_text(),
                                 text)
                # 获取页面抬头的设备名称和imei
                dev_name_and_dev_imei = self.global_dev_search_page.get_dev_name_and_imei_after_click_track_play(
                )
                self.assertIn(dev_imei_in_detail, dev_name_and_dev_imei)
                self.assertIn(dev_name_in_detail, dev_name_and_dev_imei)
                self.driver.close_current_page()
                sleep(2)
                self.driver.switch_to_window(current_handle)

        # 点击实时跟踪
        current_handle = self.driver.get_current_window_handle()
        self.global_dev_search_page.click_track_preset_button_in_dev_detail()
        all_handles = self.driver.get_all_window_handles()
        for handle in all_handles:
            if handle != current_handle:
                self.driver.switch_to_window(handle)

                self.assertEqual(
                    self.base_url + '/trackpreset/tracking/%s?isTracking=0' %
                    dev_imei_in_detail, self.driver.get_current_url())
                # 获取页面的抬头的文字
                text = self.global_dev_search_page.get_text_after_click_track_preset(
                )
                self.assertIn(self.assert_text.dev_page_track_preset_text(),
                              text)
                # 获取页面抬头的设备名称和imei
                dev_name_in_track_preset = self.global_dev_search_page.get_dev_name_in_track_preset(
                )
                dev_imei_in_track_preset = self.global_dev_search_page.get_imei_in_track_preset(
                )
                self.assertEqual(dev_imei_in_detail, dev_imei_in_track_preset)
                self.assertEqual(dev_name_in_detail, dev_name_in_track_preset)
                self.driver.close_current_page()
                sleep(2)
                self.driver.switch_to_window(current_handle)

        # 点击查看告警
        current_handle = self.driver.get_current_window_handle()
        self.global_dev_search_page.click_look_alarm_button_in_dev_detail()
        all_handles = self.driver.get_all_window_handles()
        for handle in all_handles:
            if handle != current_handle:
                self.driver.switch_to_window(handle)

                self.assertEqual(
                    self.base_url + '/deviceReport/statisticalReport',
                    self.driver.get_current_url())
                # 获取页面的抬头的文字
                text = self.global_dev_search_page.get_text_after_click_alarm_detail(
                )
                self.assertEqual(
                    self.assert_text.account_center_page_alarm_details_text(),
                    text)
                # 获取页面抬头的设备名称和ime
                self.driver.close_current_page()
                sleep(2)
                self.driver.switch_to_window(current_handle)

        # 点击查看位置
        current_handle = self.driver.get_current_window_handle()
        self.global_dev_search_page.click_look_place_button_in_dev_detail()
        all_handles = self.driver.get_all_window_handles()
        for handle in all_handles:
            if handle != current_handle:
                self.driver.switch_to_window(handle)

                self.assertEqual(self.base_url + '/console',
                                 self.driver.get_current_url())
                # 获取页面的抬头的文字
                text = self.global_dev_search_page.get_text_after_click_look_place(
                )
                # self.assertEqual(dev_imei_in_detail, text)
                # get_dev_name = self.global_dev_search_page.get_type_after_click_look_place()
                # self.assertEqual(dev_name_in_detail, get_dev_name)
                # 获取页面抬头的设备名称和ime
                self.driver.close_current_page()
                sleep(2)
                self.driver.switch_to_window(current_handle)

        # 点击设备信息
        sleep(1)
        self.global_dev_search_page.click_dev_info_button_in_dev_detail()
        sleep(2)
        # 验证设备的信息
        dev_imei_in_dev_info = self.global_dev_search_page.get_dev_imei_in_dev_info(
        )
        self.assertEqual(dev_imei_in_detail, dev_imei_in_dev_info)

        dev_type_in_dev_info = self.global_dev_search_page.get_dev_type_in_dev_info(
        )
        self.assertEqual(dev_type_in_detail, dev_type_in_dev_info)

        dev_name_in_dev_info = self.global_dev_search_page.get_dev_name_in_dev_info(
        )
        self.assertEqual(dev_name_in_detail, dev_name_in_dev_info)

        # 点击设备转移
        self.global_dev_search_page.click_dev_tran_button_in_dev_detail()

        # 循环点击右侧客户树
        for n in range(5):
            self.global_dev_search_page.click_customer(n)
            get_customer_name_in_header = self.global_dev_search_page.get_customer_name_in_header(
            )
            get_click_customer_name = self.global_dev_search_page.get_click_customer_name(
                n)
            self.assertEqual(get_customer_name_in_header,
                             get_click_customer_name)

        # 搜索无数据的用户
        self.global_dev_search_page.search_user_in_dev_detail('无数据')
        text = self.global_dev_search_page.get_text_after_search_user_in_dev_detail(
        )
        self.assertIn(self.assert_text.account_center_page_no_data_text(),
                      text)

        # 添加已经添加的设备
        self.global_dev_search_page.add_dev_to_trans(dev_imei_in_detail)
        get_file_imei = self.global_dev_search_page.get_file_imei_after_add_imei(
        )
        self.assertEqual(dev_imei_in_detail, get_file_imei)

        get_file_reason = self.global_dev_search_page.get_file_reason_add_imei(
        )
        self.assertEqual(self.assert_text.dev_page_repetition_text(),
                         get_file_reason)

        get_file_status = self.global_dev_search_page.get_file_status()
        self.assertEqual(self.assert_text.dev_page_fail_text(),
                         get_file_status)

        # 点击关闭失败信息
        self.global_dev_search_page.close_file_info()

        # 添加不存在的
        self.global_dev_search_page.add_dev_to_trans(dev_imei_in_detail +
                                                     '12345')
        get_file_imei = self.global_dev_search_page.get_file_imei_after_add_imei(
        )
        self.assertEqual(dev_imei_in_detail + '12345', get_file_imei)

        get_file_reason = self.global_dev_search_page.get_file_reason_add_imei(
        )
        self.assertEqual(self.assert_text.dev_page_inexistence_text(),
                         get_file_reason)

        get_file_status = self.global_dev_search_page.get_file_status()
        self.assertEqual(self.assert_text.dev_page_fail_text(),
                         get_file_status)

        self.global_dev_search_page.close_file_info()

        # 点击删除设备
        sleep(2)
        self.global_dev_search_page.click_detele_dev_in_dev_tran()
        # 点击转移
        self.global_dev_search_page.click_trans_dev_button()
        # 获取错误提示语
        get_text = self.global_dev_search_page.get_text_after_click_trans_dev()
        self.assertEqual(self.assert_text.glob_search_please_add_dev_text(),
                         get_text)

        # 点击重置
        self.global_dev_search_page.click_reset_button()
        # 点击转移
        self.global_dev_search_page.click_trans_dev_button()
        # 获取错误提示语
        get_text = self.global_dev_search_page.get_text_after_click_trans_dev()
        self.assertEqual(
            self.assert_text.glob_search_please_add_account_text(), get_text)

        # 点击设备指令
        self.global_dev_search_page.click_dev_command_button()

        # 获取指令页面的设备名称和设备imei
        dev_imei_in_command = self.global_dev_search_page.get_dev_imei_in_command(
        )
        dev_name_in_command = self.global_dev_search_page.get_dev_name_in_command(
        )
        self.assertEqual(dev_imei_in_detail, dev_imei_in_command)
        self.assertEqual(dev_name_in_detail, dev_name_in_command)
예제 #12
0
class TestCase512FormSearchClockInSearch(unittest.TestCase):
    # 测试 报表搜索 打卡报表搜索
    def setUp(self):
        # 前置条件
        # 实例化对象
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.statistical_form_page = StatisticalFormPage(self.driver, self.base_url)
        self.statistical_form_page_read_csv = StatisticalFormPageReadCsv()
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.search_sql = SearchSql(self.driver, self.base_url)
        self.obd_form_page = ObdFormPage(self.driver, self.base_url)
        self.clock_in_page = ClockInPage(self.driver, self.base_url)
        # 打开页面,填写用户名、密码、点击登录
        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.assert_text = AssertText()

        current_handle = self.driver.get_current_window_handle()
        self.statistical_form_page.click_control_after_click_statistical_form_page()
        sleep(3)
        self.base_page.change_windows_handle(current_handle)

    def tearDown(self):
        self.driver.close_window()
        # 退出浏览器
        self.driver.quit_browser()

    def test_case_clock_in_search(self):
        # 断言url
        expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport'
        self.assertEqual(expect_url_after_click_statistical_form,
                         self.statistical_form_page.actual_url_after_statistical_form())

        # 点击打卡记录
        self.clock_in_page.click_clock_in_form_button()
        # 切换到打开记录的frame里面
        self.clock_in_page.switch_to_click_in_form_frame()

        csv_file = self.statistical_form_page_read_csv.read_csv('clock_in_form_data.csv')
        csv_data = csv.reader(csv_file)
        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            data = {
                'date_type': row[0],
                'begin_time': row[1],
                'end_time': row[2],
                'dev_type': row[3],
                'dev_imei': row[4],
                'clock_in_type': row[5]
            }
            self.clock_in_page.add_data_to_search_click_in_form(data)
            get_sql_data = self.clock_in_page.get_sql_data_in_clock_in_form(data)
            print(get_sql_data)
            web_list = []
            # 获取查询的页数
            number = self.clock_in_page.get_page_number_after_search_clock_in_form()
            if number == 0:
                text = self.clock_in_page.get_no_data_text_in_clock_form()
                self.assertIn(self.assert_text.account_center_page_no_data_text(), text)

            elif number == 1:
                # 获取每一页的条数
                per_page_number = self.clock_in_page.get_per_page_number_in_clock_in_form()
                for n in range(per_page_number):
                    web_list.append({
                        'imei': self.clock_in_page.get_imei_in_clock_in_form(n),
                        'time': self.clock_in_page.get_time_in_clock_form(n),
                        'on_off': self.clock_in_page.get_on_off_in_clock_form(n)
                    })
                print(web_list)
                self.assertEqual(get_sql_data, web_list)
            else:
                # 循环点击每一页
                for n in range(number):
                    self.clock_in_page.click_per_page(n)
                    per_page_number = self.clock_in_page.get_per_page_number_in_clock_in_form()
                    for n in range(per_page_number):
                        web_list.append({
                            'imei': self.clock_in_page.get_imei_in_clock_in_form(n),
                            'time': self.clock_in_page.get_time_in_clock_form(n),
                            'on_off': self.clock_in_page.get_on_off_in_clock_form(n)
                        })
                print(web_list)
                self.assertEqual(get_sql_data, web_list)
        self.driver.default_frame()
예제 #13
0
class TestCase157AlarmOverviewExceptionSearch(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.alarm_info_page = AlarmInfoPage(self.driver, self.base_url)
        self.statistical_form_page_read_csv = StatisticalFormPageReadCsv()
        self.statistical_form_page = StatisticalFormPage(
            self.driver, self.base_url)
        self.statistical_form_page2 = StatisticalFormPage2(
            self.driver, self.base_url)
        self.alarm_info_page = AlarmInfoPage(self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.assert_text = AssertText()

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

    def test_alarm_overview_exception_search(self):
        """
         告警总览页面,异常搜索数据验证
        """
        # 登录
        self.log_in_base.log_in_jimitest()
        # 点击进入统计报表、告警总览
        self.statistical_form_page.click_control_after_click_statistical_form_page(
        )
        self.alarm_info_page.click_alarm_overview_list()

        # 取开始、结束时间
        # data = ["#¥%@#¥!","销售","20002017","abcdyyyyyyy","测试01511abc_@!&","暂无数据"]
        type = ["今天", "本周", "昨天", "上周", "本月", "上月", "自定义"]
        data = ["暂无数据"]

        for time in type:
            time = self.statistical_form_page2.alarm_overview_validation_time(
                time)
            self.assertEqual(time["page_time"]["page_start_time"],
                             time["sql_time"]["sql_start_time"],
                             "实际与显示的开始时间不相符")
            self.assertEqual(time["page_time"]["page_end_time"],
                             time["sql_time"]["sql_end_time"], "实际与显示的结束时间不相符")

        # 验证提示
        for user in data:
            text = self.statistical_form_page2.alarm_search_user(user)
            print(text)
            self.assertIn(user, text, "搜索后的数据不存在实际搜索出的数据中")

        # 验证搜索下级的imei可以搜索到
        # 填写下级的imei搜索
        sleep(2)
        self.statistical_form_page2.input_imei_to_search_in_alarm_overview_form(
            self.statistical_form_page2.get_imei())
        # 断言
        # 获取查询设备的imei
        search_imei = self.statistical_form_page2.get_search_imei_in_alarm_overview_form(
        )
        self.assertEqual(search_imei, self.statistical_form_page2.get_imei())

        # 验证停机的设备无法搜索到
        self.statistical_form_page2.input_imei_to_search_in_alarm_overview_form(
            self.statistical_form_page2.get_shut_down_imei())
        # 获取搜索的数量
        get_number_after_search = self.statistical_form_page.get_number_after_search_in_alarm_overview_form(
        )
        self.assertEqual(0, get_number_after_search)

        get_text_after_search = self.statistical_form_page.get_text_after_search_in_alarm_overview_form(
        )
        self.assertIn(self.assert_text.account_center_page_no_data_text(),
                      get_text_after_search)

        # 验证未激活的设备无法搜索到
        self.statistical_form_page2.input_imei_to_search_in_alarm_overview_form(
            self.statistical_form_page2.get_no_active_imei())
        # 获取搜索的数量
        get_number_after_search = self.statistical_form_page.get_number_after_search_in_alarm_overview_form(
        )
        self.assertEqual(0, get_number_after_search)

        get_text_after_search = self.statistical_form_page.get_text_after_search_in_alarm_overview_form(
        )
        self.assertIn(self.assert_text.account_center_page_no_data_text(),
                      get_text_after_search)

        # 点击搜索用户--下拉框
        # self.statistical_form_page2.click_alarm_overview_pull_down()
        self.driver.wait()
        self.driver.default_frame()

        # 点击选择告警类型
        self.statistical_form_page2.click_setting_alarm_type()
        # 点击全选
        self.statistical_form_page2.click_alarm_type_all()

        # 验证勾选全选
        selected = self.statistical_form_page2.setting_alarm_type("保存")
        print(selected)
        for state in selected:
            self.assertEqual(False, state, "勾选全选后,存在未勾选的类型")

        # 保存成功后,验证是否为勾选状态
        self.statistical_form_page2.click_setting_alarm_type()
        selected_true = self.statistical_form_page2.setting_alarm_type("取消")
        print(selected_true)
        for state_true in selected_true:
            self.assertEqual(True, state_true, "全选保存后,再次点击查看勾选状态,状态显示错误")

        # 未勾选全选
        self.statistical_form_page2.click_setting_alarm_type()
        # 点击全选
        self.statistical_form_page2.click_alarm_type_all()

        no_choice = self.statistical_form_page2.setting_alarm_type("保存")
        print(no_choice)
        for state_false in no_choice:
            self.assertEqual(False, state_false, "取消全选保存后,再次点击查看勾选状态,状态显示错误")

        # 取消全选保存成功后,验证是否为勾选状态
        self.statistical_form_page2.click_setting_alarm_type()
        cancel = self.statistical_form_page2.setting_alarm_type("取消")
        print(cancel)
        for select_cancel in cancel:
            self.assertEqual(True, select_cancel, "取消全选保存后,再次点击查看勾选状态,状态显示错误")

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

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

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

        self.log_in_base.log_in()
        self.log_in_base.click_account_center_button()
        self.global_dev_search_page.click_easy_search()
        # 关闭
        self.global_dev_search_page.close_search()
        sleep(2)
        self.global_dev_search_page.click_easy_search()
        self.global_dev_search_page.click_dev_searchs()
        # 选择设备搜索
        # self.global_dev_search_page.click_search_buttons()
        sleep(5)
        self.global_dev_search_page.swith_to_search_frame()
        # 获取设备有多少个分页
        total_page = self.global_dev_search_page.get_total_page_number_after_search_dev(
        )
        if total_page[0] == 0:
            text = self.global_dev_search_page.get_no_data_text_in_search_dev()
            self.assertIn(self.assert_text.account_center_page_no_data_text(),
                          text)

        elif total_page[0] == 1:
            up_page_class = self.global_dev_search_page.get_up_page_class_active_in_dev_search(
            )
            self.assertEqual('active', up_page_class)

            next_page_class = self.global_dev_search_page.get_next_page_class_active_in_dev_search(
            )
            self.assertEqual('active', next_page_class)

        else:
            for n in range(total_page[0]):
                self.global_dev_search_page.click_per_page(n)
                get_per_first_number = self.global_dev_search_page.get_per_frist_number_in_dev_search(
                )
                self.assertEqual(get_per_first_number, str(10 * (n + 1) - 9))

            # 点击每页20条
            list = [20, 30, 50, 100]
            for m in list:
                self.global_dev_search_page.click_per_page_number()
                page_number = self.global_dev_search_page.get_page_number_in_dev_search(
                )
                if int(total_page[1] % m) != 0:
                    a = int(total_page[1] / m) + 1
                else:
                    a = int(total_page[1] / m)
                self.assertEqual(a, page_number)
예제 #15
0
class TestCase159AlarmDetailSearchDev(unittest.TestCase):
    def setUp(self):
        # 前置条件
        # 实例化对象
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)

        self.alarm_info_page = AlarmInfoPage(self.driver, self.base_url)
        self.statistical_form_page_read_csv = StatisticalFormPageReadCsv()
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.statistical_form_page = StatisticalFormPage(
            self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.search_sql = SearchSql(self.driver, self.base_url)
        self.statistical_form_page2 = StatisticalFormPage2(
            self.driver, self.base_url)

        # 打开页面,填写用户名、密码、点击登录
        self.base_page.open_page()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)
        self.assert_text = AssertText()
        self.log_in_base.log_in_jimitest()
        # 登录之后点击控制台,然后点击指令管理
        self.statistical_form_page.click_control_after_click_statistical_form_page(
        )
        sleep(3)

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

    def test_case_alarm_detail_search_dev(self):
        # 断言url
        expect_url = self.base_url + '/deviceReport/statisticalReport'
        self.assertEqual(expect_url,
                         self.alarm_info_page.actual_url_click_alarm())
        # 点击告警详情
        self.alarm_info_page.click_alarm_detail_list()
        # 断言
        self.driver.switch_to_frame('x,//*[@id="alarmDdetailsFrame"]')
        self.assertEqual(
            self.assert_text.account_center_page_alarm_details_text(),
            self.alarm_info_page.actual_text_after_click_alarm_detail())

        # 验证搜索下级的imei可以搜索到
        # 填写下级的imei搜索
        sleep(2)
        self.statistical_form_page2.input_imei_to_search_in_alarm_detail_form(
            self.statistical_form_page2.get_imei())
        # 断言
        # 获取查询设备的imei
        search_imei = self.statistical_form_page2.get_search_imei_in_alarm_detail_forms(
        )
        self.assertEqual(search_imei, self.statistical_form_page2.get_imei())

        # 验证停机的设备无法搜索到
        self.statistical_form_page2.input_imei_to_search_in_alarm_detail_form(
            self.statistical_form_page2.get_no_active_imei())
        # 获取搜索的数量
        get_number_after_search = self.statistical_form_page.get_number_after_search_in_alarm_detail_form(
        )
        self.assertEqual(0, get_number_after_search)

        get_text_after_search = self.statistical_form_page.get_text_after_search_in_alarm_detail_form(
        )
        self.assertIn(self.assert_text.account_center_page_no_data_text(),
                      get_text_after_search)

        self.driver.default_frame()
예제 #16
0
class TestCase99DevManageSearchDevAfterIssuedCommand(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.dev_manage_page = DevManagePages(self.driver, self.base_url)
        self.driver.set_window_max()
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.dev_manage_page_read_csv = DevManagePageReadCsv()
        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_dev_manager_search_dev_after_issued_command(self):

        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录
        self.log_in_base.log_in_jimitest()
        # 点击进入设备管理
        self.dev_manage_page.enter_dev_manage()
        # 搜索 包含下级 加 平台即将到期
        self.dev_manage_page.search_platform_expire_and_contain_next_in_dev_page(
        )

        # 获取查询的页数
        page_number = self.dev_manage_page.get_total_page_number_in_dev_manager(
        )
        if page_number == 0:
            # 断言暂无数据
            text = self.dev_manage_page.get_no_data_text_after_search_in_dev_page(
            )
            self.assertIn(self.assert_text.account_center_page_no_data_text(),
                          text)
            # 点击本次查询全部发送指令
            self.dev_manage_page.click_batch_issued_command_button()
            # 断言数据为零
            self.assertEqual(
                '',
                self.dev_manage_page.get_total_number_in_issued_command_page())
            self.assertEqual(
                0,
                self.dev_manage_page.
                get_total_number_list_in_issued_command_page())

        elif page_number == 1:
            # 查询本页的条数
            number = self.dev_manage_page.get_total_number_per_page_in_dev_manager(
            )
            # 获取到查询到的所有imei
            search_imei = []
            for n in range(number):
                imei = self.dev_manage_page.get_per_imei_in_dev_page(n)
                search_imei.append(imei)

            # 点击本次查询全部发送指令
            self.dev_manage_page.click_batch_issued_command_button()
            # 获取全部下发指令页面 统计的总数和列表中设备的总数
            check_number = self.dev_manage_page.get_total_number_in_issued_command_page(
            )
            check_list_number = self.dev_manage_page.get_total_number_list_in_issued_command_page(
            )
            a = (number - int(check_number)) >= 0
            self.assertEqual(True, a)
            b = (number - check_list_number) >= 0
            self.assertEqual(True, b)

            # 获取下发指令页面的所有imei
            issued_imei = []
            for m in range(check_list_number):
                imei = self.dev_manage_page.get_per_imei_in_issued_command(m)
                issued_imei.append(imei)
            # 断言下发指令页面的设备都在查询的里面
            for dev in issued_imei:
                self.assertIn(dev, search_imei)

        else:
            search_imei = []
            for x in range(page_number):
                self.dev_manage_page.click_per_page(x + 1)
                # 查询本页的条数
                number = self.dev_manage_page.get_total_number_per_page_in_dev_manager(
                )
                # 获取到查询到的所有imei
                for y in range(number):
                    imei = self.dev_manage_page.get_per_imei_in_dev_page(y)
                    search_imei.append(imei)

            # 点击本次查询全部发送指令
            self.dev_manage_page.click_batch_issued_command_button()
            # 获取全部下发指令页面 统计的总数和列表中设备的总数
            check_number = self.dev_manage_page.get_total_number_in_issued_command_page(
            )
            check_list_number = self.dev_manage_page.get_total_number_list_in_issued_command_page(
            )
            a = (len(search_imei) - int(check_number)) >= 0
            self.assertEqual(True, a)
            b = (len(search_imei) - check_list_number) >= 0
            self.assertEqual(True, b)

            # 获取下发指令页面的所有imei
            issued_imei = []
            for m in range(check_list_number):
                imei = self.dev_manage_page.get_per_imei_in_issued_command(m)
                issued_imei.append(imei)
            # 断言下发指令页面的设备都在查询的里面
            for dev in issued_imei:
                self.assertIn(dev, search_imei)
예제 #17
0
class TestCase128DevAdvancedSearchWithDeleteUser(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.global_dev_search_page = GlobalDevSearchPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPages(
            self.driver, self.base_url)
        self.driver.set_window_max()
        self.global_account_search_page = GlobalAccountSearchPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.global_search_page_read_csv = GlobleSearchPageReadCsv()
        self.search_sql = SearchSql()
        self.driver.wait(1)
        self.connect_sql = ConnectSql()
        self.assert_text = AssertText()
        self.driver.clear_cookies()
        self.driver.wait(1)

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

    def test_case_dev_advanced_search_with_delete_user(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        self.log_in_base.log_in()

        self.global_account_search_page.click_cust_manager_button()
        csv_file = self.global_search_page_read_csv.read_csv(
            'new_user_info.csv')
        csv_data = csv.reader(csv_file)

        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            add_data = {
                'account_type': row[0],
                'account_name': row[1],
                'account': row[2]
            }
            self.global_account_search_page.click_add_new_user_button()
            self.global_account_search_page.click_close_add_user_page()
            self.global_account_search_page.click_add_new_user_button()
            self.global_dev_search_page.swith_to_search_frames()
            self.global_account_search_page.add_data_to_add_new_user(add_data)
            # 删除
            self.global_account_search_page.search_user_by_account_in_cust_manage(
                add_data['account'])

            self.log_in_base.click_account_center_button()
            self.global_dev_search_page.click_easy_search()
            # 关闭
            self.global_dev_search_page.close_search()
            sleep(2)
            self.global_dev_search_page.click_easy_search()
            # 选择设备搜索--高级搜索
            self.global_dev_search_page.swith_to_search_frame()
            self.global_dev_search_page.click_advanced_search_button()

            # 搜索已经删除的用户名称
            self.global_dev_search_page.click_search_button_in_dev_advanced_search_page(
            )
            # 输入删除的用户名称搜索
            self.global_dev_search_page.add_user_name_to_search_in_dev_advanced_search_page(
                add_data['account'])

            get_text = self.global_dev_search_page.get_text_after_click_search_button_in_dev_advanced_search_page(
            )
            self.assertIn(self.assert_text.account_center_page_no_data_text(),
                          get_text)
            break
        csv_file.close()
class TestCase82DevManageBatchSale(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.dev_manage_page = DevManagePages(self.driver, self.base_url)
        self.driver.set_window_max()
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.dev_manage_page_read_csv = DevManagePageReadCsv()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.assert_text = AssertText()
        self.driver.wait(1)

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

    def test_case_dev_manage_batch_sale(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        self.log_in_base.log_in()
        # 点击进入设备管理
        self.dev_manage_page.enter_dev_manage()
        # 选择一个设备点击批量销售
        self.dev_manage_page.choose_one_dev_to_search()
        get_first_imei = self.dev_manage_page.get_first_imei_in_list()
        get_dev_type = self.dev_manage_page.get_dev_type_in_list()
        # 点击批量
        self.dev_manage_page.click_batch_sale_button()
        self.dev_manage_page.click_close_batch_sale_button()
        self.dev_manage_page.click_batch_sale_button()

        '''# 搜索右侧客户树
        # 循环点击5次
        for n in range(5):
            self.driver.click_element('x,//*[@id="treeDemo_device_sale_id_%s_span"]' % str(n + 1))
            sleep(2)
            # 判断数量
            get_account_dev_number = self.driver.get_text('x,//*[@id="treeDemo_device_sale_id_%s_span"]' % str(n + 1))

            name = self.dev_manage_page.get_select_account_name()
            self.assertEqual(get_account_dev_number, name)

        # 搜索无数据
        self.dev_manage_page.search_customer_after_click_batch_sale_dev('无数据')
        get_text = self.dev_manage_page.get_search_customer_no_data_text_after_batch_sale_dev()
        self.assertIn(self.assert_text.account_center_page_no_data_text(), get_text)

        # 获取选中设备的数量
        dev_number = self.dev_manage_page.get_select_dev_number()

        # 获取抬头设备统计的数量
        dev_numbers_count = self.dev_manage_page.get_dev_numbers()
        self.assertEqual(str(dev_number), dev_numbers_count)'''

        # 验证界面
        get_sale_title = self.dev_manage_page.get_sale_title_text_in_sale_dev()
        self.assertEqual(self.assert_text.batch_sale_text(), get_sale_title)

        get_imei_in_sale = self.dev_manage_page.get_batch_sale_imei_in_sale_dev()
        self.assertEqual(get_first_imei, get_imei_in_sale)

        get_dev_type_in_sale = self.dev_manage_page.get_dev_type_in_sale()
        self.assertEqual(get_dev_type, get_dev_type_in_sale)

        get_dev_number = self.dev_manage_page.get_dev_number_in_sale_dev()
        self.assertEqual('1', get_dev_number)

        get_dev_account = self.dev_manage_page.get_dev_account_name()
        connect_sql = ConnectSql()
        connect = connect_sql.connect_tuqiang_sql()
        cursor = connect.cursor()
        sql = "select m.account from equipment_mostly m where m.imei = '%s';" % get_first_imei
        cursor.execute(sql)
        data = cursor.fetchall()
        cursor.close()
        connect.close()

        sql_account = data[0][0]
        self.assertEqual(get_dev_account, sql_account)

        # 输入不存在的IMEI号进行添加
        self.dev_manage_page.add_imei_in_sale_dev_page('bucunzai')

        add_dev_state = self.dev_manage_page.add_dev_after_fail_state()
        self.assertEqual(self.assert_text.dev_page_fail_text(), add_dev_state)
        add_dev_reason = self.dev_manage_page.add_dev_after_fail_reason()
        self.assertEqual(self.assert_text.dev_page_inexistence_text(), add_dev_reason)
        self.dev_manage_page.click_close_fails()
        # 添加不属于当前登陆账号设备总进货数中的设备
        self.dev_manage_page.add_imei_in_sale_dev_page('863666010079196')

        add_dev_state = self.dev_manage_page.add_dev_after_fail_state()
        self.assertEqual(self.assert_text.dev_page_fail_text(), add_dev_state)
        add_dev_reason = self.dev_manage_page.add_dev_after_fail_reason()
        self.assertEqual(self.assert_text.dev_page_inexistence_text(), add_dev_reason)
        self.dev_manage_page.click_close_fails()
        # 添加与设备列表中重复的设备
        self.dev_manage_page.add_imei_in_sale_dev_page(get_first_imei)

        add_dev_state = self.dev_manage_page.add_dev_after_fail_state()
        self.assertEqual(self.assert_text.dev_page_fail_text(), add_dev_state)
        add_dev_reason = self.dev_manage_page.add_dev_after_fail_reason()
        self.assertEqual(self.assert_text.dev_page_repetition_text(), add_dev_reason)
        self.dev_manage_page.click_close_fails()

        # 搜索右侧客户树
        # 循环点击5次
        for n in range(5):
            self.driver.click_element('x,//*[@id="treeDemo_device_sale_id_%s_span"]' % str(n + 1))
            sleep(2)
            # 判断数量
            get_account_dev_number = self.driver.get_text('x,//*[@id="treeDemo_device_sale_id_%s_span"]' % str(n + 1))

            name = self.dev_manage_page.get_select_account_name()
            self.assertEqual(get_account_dev_number, name)

        # 搜索无数据
        self.dev_manage_page.search_customer_after_click_batch_sale_dev('无数据')
        get_text = self.dev_manage_page.get_search_customer_no_data_text_after_batch_sale_dev()
        self.assertIn(self.assert_text.account_center_page_no_data_text(), get_text)

        # 获取选中设备的数量
        dev_number = self.dev_manage_page.get_select_dev_number()

        # 获取抬头设备统计的数量
        dev_numbers_count = self.dev_manage_page.get_dev_numbers()
        self.assertEqual(str(dev_number), dev_numbers_count)
예제 #19
0
class TestCase108GlobSearchUserDetail(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.global_dev_search_page = GlobalDevSearchPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPages(
            self.driver, self.base_url)
        self.driver.set_window_max()
        self.global_account_search_page = GlobalAccountSearchPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.global_search_page_read_csv = GlobleSearchPageReadCsv()
        self.search_sql = SearchSql()
        self.driver.wait(1)
        self.connect_sql = ConnectSql()
        self.assert_text = AssertText()
        self.driver.clear_cookies()
        self.driver.wait(1)

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

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

        self.global_dev_search_page.click_easy_search()

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

        user_name = self.global_dev_search_page.get_user_name_in_user_search()
        user_type = self.global_dev_search_page.get_user_type_in_user_search()
        user_account = self.global_dev_search_page.get_user_account_in_user_search(
        )
        # 点用户详情
        self.global_dev_search_page.click_detail_in_user_search()

        # 用户信息
        self.global_dev_search_page.click_user_info_in_user_detail()
        # 获取用户信息中用户名称,用户类型、用户账号、上级用户
        user_name_in_detail = self.global_dev_search_page.get_user_name_in_detail(
        )
        self.assertIn(user_name, user_name_in_detail)

        # user_type_in_detail = self.global_dev_search_page.get_user_type_in_detail()
        # self.assertEqual(user_type, user_type_in_detail)

        uesr_account_in_detail = self.global_dev_search_page.get_user_account_in_detail(
        )
        self.assertEqual(user_account, uesr_account_in_detail)
        user_account_input_value = self.global_dev_search_page.get_user_account_input_value_in_detail(
        )
        self.assertEqual('true', user_account_input_value)

        get_up_user_name = self.global_dev_search_page.get_up_user_name_in_detail(
        )
        get_up_user_input_value = self.global_dev_search_page.get_up_user_input_value_in_detail(
        )
        self.assertEqual('true', get_up_user_input_value)

        # 查询选中用户的上级
        connect = self.connect_sql.connect_tuqiang_sql()
        cursor = connect.cursor()
        get_up_account_sql = "select parentId from user_info where account = '%s';" % user_account
        cursor.execute(get_up_account_sql)
        get_up_account = cursor.fetchall()
        up_account_id = get_up_account[0][0]
        get_up_name_sql = "select nickName from user_info where userId = '%s';" % up_account_id
        cursor.execute(get_up_name_sql)
        get_up_name = cursor.fetchall()
        up_account = get_up_name[0][0]
        cursor.close()
        connect.close()
        self.assertEqual(get_up_user_name, up_account)

        # 验证右侧的客户数是否可以搜索
        # 搜索没有的数据
        text = self.global_dev_search_page.search_user_in_user_info('无数据')
        self.assertIn(self.assert_text.account_center_page_no_data_text(),
                      text)

        # 循环点击五次
        for n in range(5):
            self.global_dev_search_page.swith_to_search_frame()
            self.driver.click_element(
                'x,//*[@id="complex_userInfo_tree_complexUpdate_%s_a"]' %
                str(n + 15))
            get_up_user_name = self.global_dev_search_page.get_up_user_name_in_details(
            )
            select_up_name = self.driver.get_text(
                'x,//*[@id="complex_userInfo_tree_complexUpdate_%s_span"]' %
                str(n + 15))
            # self.assertEqual(get_up_user_name, select_up_name)
            sleep(2)
            self.driver.default_frame()

        # 点击销售设备
        self.global_dev_search_page.click_sale_dev_in_user_info()
        # 获取销售的对象
        sale_user_name = self.global_dev_search_page.get_sale_user_name()
        self.assertEqual(user_name, sale_user_name)

        # 点击新增客户
        self.global_dev_search_page.click_add_user_in_user_info()
        # 获取新增客户默认的上级
        up_user_in_add_user = self.global_dev_search_page.get_up_user_in_add_user(
        )
        self.assertIn(user_name, up_user_in_add_user)

        # 验证账号
        # 为空
        self.global_dev_search_page.check_add_user_account_input_in_user_info(
            '')
        self.global_dev_search_page.click_save_add_user()
        text = self.global_dev_search_page.get_text_account_input_expertion()
        self.assertEqual(self.assert_text.cust_page_user_account_not_null(),
                         text)

        # 小于3位
        self.global_dev_search_page.check_add_user_account_input_in_user_info(
            '12')
        self.global_dev_search_page.click_save_add_user()
        text = self.global_dev_search_page.get_text_account_input_expertion()
        self.assertEqual(self.assert_text.cust_page_user_account_len(), text)

        # 验证最大长度
        get_user_account_input_max_len = self.global_dev_search_page.get_user_account_input_max_len(
        )
        self.assertEqual('30', get_user_account_input_max_len)

        # 验证客户名称
        # 为空
        self.global_dev_search_page.check_add_user_name_input_in_user_info('')
        self.global_dev_search_page.click_save_add_user()
        text = self.global_dev_search_page.get_text_name_input_expertion()
        self.assertEqual(self.assert_text.cust_page_user_name_not_null(), text)

        # 小于3位
        self.global_dev_search_page.check_add_user_name_input_in_user_info(
            '12')
        self.global_dev_search_page.click_save_add_user()
        text = self.global_dev_search_page.get_text_name_input_expertion()
        self.assertEqual(self.assert_text.cust_page_user_name_more_than_3s(),
                         text)

        # 密码
        # 为空
        self.global_dev_search_page.click_add_user_password_first_input_in_user_info(
            '')
        self.global_dev_search_page.click_save_add_user()
        get_first_password_text = self.global_dev_search_page.get_first_password_text(
        )
        self.assertEqual(self.assert_text.cust_page_user_password_not_nulls(),
                         get_first_password_text)

        # 小于6位
        self.global_dev_search_page.click_add_user_password_first_input_in_user_info(
            '12qw')
        self.global_dev_search_page.click_add_user_password_second_input_in_user_info(
            '12qw')
        self.global_dev_search_page.click_save_add_user()
        get_first_password_text = self.global_dev_search_page.get_first_password_text(
        )
        self.assertEqual(self.assert_text.cust_page_user_password_len(),
                         get_first_password_text)

        # 全数字
        self.global_dev_search_page.click_add_user_password_first_input_in_user_info(
            '121212')
        self.global_dev_search_page.click_add_user_password_second_input_in_user_info(
            '121212')
        self.global_dev_search_page.click_save_add_user()
        get_first_password_text = self.global_dev_search_page.get_first_password_text(
        )
        self.assertEqual(
            self.assert_text.account_center_page_password_formart_text(),
            get_first_password_text)

        # 全字母
        self.global_dev_search_page.click_add_user_password_first_input_in_user_info(
            'qwerqw')
        self.global_dev_search_page.click_add_user_password_second_input_in_user_info(
            'qwerqw')
        self.global_dev_search_page.click_save_add_user()
        get_first_password_text = self.global_dev_search_page.get_first_password_text(
        )
        self.assertEqual(
            self.assert_text.account_center_page_password_formart_text(),
            get_first_password_text)
        # 两次密码不一致
        self.global_dev_search_page.click_add_user_password_first_input_in_user_info(
            'qwerqw123')
        self.global_dev_search_page.click_add_user_password_second_input_in_user_info(
            'qwerqw2324')
        self.global_dev_search_page.click_save_add_user()
        get_second_password_text = self.global_dev_search_page.get_second_password_text(
        )
        self.assertEqual(self.assert_text.cust_page_password_unlike(),
                         get_second_password_text)
class TestCase112UserSearchByDeleteUser(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.global_dev_search_page = GlobalDevSearchPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPages(
            self.driver, self.base_url)
        self.driver.set_window_max()
        self.global_account_search_page = GlobalAccountSearchPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.global_search_page_read_csv = GlobleSearchPageReadCsv()
        self.search_sql = SearchSql()
        self.assert_text = AssertText()
        self.driver.wait(1)
        self.connect_sql = ConnectSql()
        self.driver.clear_cookies()
        self.driver.wait(1)

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

    def test_user_search_by_delete_user(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        self.log_in_base.log_in()
        # 分别新建 销售、代理商、用户并删除,然后搜索
        # 点击客户管理

        self.global_account_search_page.click_cust_manager_button()
        csv_file = self.global_search_page_read_csv.read_csv(
            'new_user_info.csv')
        csv_data = csv.reader(csv_file)

        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            add_data = {
                'account_type': row[0],
                'account_name': row[1],
                'account': row[2]
            }
            self.global_account_search_page.click_add_new_user_button()
            self.global_account_search_page.click_close_add_user_page()
            self.global_account_search_page.click_add_new_user_button()
            self.global_dev_search_page.swith_to_search_frames()
            self.global_account_search_page.add_data_to_add_new_user(add_data)

            # 先搜索
            self.global_account_search_page.click_global_search_button()
            self.global_account_search_page.click_close_add_user_page()
            self.global_account_search_page.click_global_search_button()
            self.global_dev_search_page.swith_to_search_frames()

            self.global_account_search_page.search_user_by_account_in_global_search(
                add_data['account'])
            get_user_account = self.global_account_search_page.get_user_account_after_search(
            )
            self.assertEqual(get_user_account, add_data['account'])
            self.driver.default_frame()
            self.global_account_search_page.click_close_add_user_page()

            # 删除
            self.global_account_search_page.search_user_by_account_in_cust_manage(
                add_data['account'])

            # 打开全局搜索,搜索用户
            self.global_account_search_page.click_global_search_button()
            self.global_account_search_page.click_close_add_user_page()
            self.global_account_search_page.click_global_search_button()
            self.global_dev_search_page.swith_to_search_frames()

            self.global_account_search_page.search_user_by_account_in_global_search(
                add_data['account'])

            get_text = self.global_account_search_page.get_text_after_search()
            self.assertIn(self.assert_text.account_center_page_no_data_text(),
                          get_text)
            self.driver.default_frame()
            self.global_account_search_page.click_close_add_user_page()
        csv_file.close()
class TestCase113UserSearchPagingFunction(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.global_dev_search_page = GlobalDevSearchPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPages(
            self.driver, self.base_url)
        self.driver.set_window_max()
        self.global_account_search_page = GlobalAccountSearchPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.global_search_page_read_csv = GlobleSearchPageReadCsv()
        self.search_sql = SearchSql()
        self.assert_text = AssertText()
        self.driver.wait(1)
        self.connect_sql = ConnectSql()
        self.driver.clear_cookies()
        self.driver.wait(1)

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

    def test_user_search_paging_function(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.global_dev_search_page.click_easy_search()
        # 关闭
        self.global_dev_search_page.close_search()
        sleep(2)

        self.global_dev_search_page.click_easy_search()
        # self.global_dev_search_page.click_dev_search()
        self.global_dev_search_page.swith_to_search_frame()
        self.global_account_search_page.click_search_user_button()

        # 获取页面总共有多少页
        total_number = self.global_account_search_page.get_total_number_after_click_search_user_button(
        )

        if total_number == 0:
            self.assertIn(
                self.assert_text.account_center_page_no_data_text(),
                self.global_account_search_page.
                get_no_data_text_in_user_search())
        elif total_number == 1:
            up_page_state = self.global_account_search_page.get_up_page_state_in_search_user(
            )
            self.assertEqual('active', up_page_state)
            next_page_state = self.global_account_search_page.get_next_page_state_in_search_user(
            )
            self.assertEqual('active', next_page_state)
        else:
            for n in range(total_number):
                self.global_account_search_page.click_per_page(n)

        if total_number != 0:
            self.global_account_search_page.click_per_number()
예제 #22
0
class TestCase06AccountCenterMsgSetRead(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriverServer(choose='chrome')
        self.base_url = self.driver.base_url
        self.base_page = BasePageServer(self.driver, self.base_url)
        self.login_page = LoginPage(self.driver, self.base_url)
        self.account_center_page_msg_center = AccountCenterMsgCenterPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBaseServer(self.driver, self.base_url)
        self.assert_text = AssertText()
        self.driver.set_window_max()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

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

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

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

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

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

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

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

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

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

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

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

            else:

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

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

                status_text = self.account_center_page_msg_center.get_status_text(
                )

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

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

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

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

    def test_cust_manage_transfer_cust_search(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录
        self.log_in_base.log_in()

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

        # 点击编辑用户
        self.cust_manage_basic_info_and_add_cust_page.click_transfer_customer()

        self.cust_manage_basic_info_and_add_cust_page.click_cancel_edit()

        self.cust_manage_basic_info_and_add_cust_page.click_transfer_customer()

        # 循环点击五次
        for n in range(5):
            self.cust_manage_basic_info_and_add_cust_page.locate_to_iframe()
            self.driver.click_element('x,//*[@id="treeDemo2_%s_span"]' %
                                      str(n + 3))
            sleep(2)
            self.driver.default_frame()

        # 搜索
        # 1 搜索无数据的内容
        """
        self.cust_manage_basic_info_and_add_cust_page.search_cust('无数据')
        get_text = self.cust_manage_basic_info_and_add_cust_page.get_search_no_data_text()
        self.assertIn(self.assert_text.account_center_page_no_data_text(), get_text)
        """

        # 2搜索
        seatch_data = ["无", "test", "yonghu222啦啦啦", "休息休息12", "#@@@ %"]
        for user in range(len(seatch_data)):
            search_result = self.cust_manage_basic_info_and_add_cust_page.transfer_import_account_search(
                seatch_data[user])
            if type(search_result) is str:
                self.assertIn(
                    self.assert_text.account_center_page_no_data_text(),
                    search_result, "搜索结果为暂无数据时,提示不一致")

            else:
                for subscript in range(len(search_result)):
                    text = search_result[subscript].split("(")[0]
                    self.assertIn(seatch_data[user], text, "搜索结果不一致")
class TestCase170AlarmOverviewSearch(unittest.TestCase):
    '''
    用例第138条,告警总览页面搜索
    author:zhangAo
    '''
    def setUp(self):
        # 前置条件
        # 实例化对象
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.alarm_info_page = AlarmInfoPage(self.driver, self.base_url)
        self.statistical_form_page_read_csv = StatisticalFormPageReadCsv()
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.statistical_form_page = StatisticalFormPage(
            self.driver, self.base_url)
        self.statistical_form_page2 = StatisticalFormPage2(
            self.driver, self.base_url)
        self.connect_sql = ConnectSql()

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

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

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

    def test_case_alarm_overview_search(self):
        # 断言url
        expect_url = self.base_url + '/deviceReport/statisticalReport'
        self.assertEqual(expect_url,
                         self.alarm_info_page.actual_url_click_alarm())

        # 点击告警总览
        self.alarm_info_page.click_alarm_overview_list()

        # 输入数据搜索
        csv_file = self.statistical_form_page_read_csv.read_csv(
            'alarm_overview_search_datas.csv')
        csv_data = csv.reader(csv_file)
        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            data = {
                'user_name': row[0],
                'choose_date': row[1],
                'began_time': row[2],
                'end_time': row[3]
            }
            self.alarm_info_page.add_data_to_search_in_alarm_overview(data)

            # 获取搜索出的条数
            web_total = self.alarm_info_page.get_web_total_in_overview_searchs(
            )
            if web_total == 0:
                self.assertIn(
                    self.assert_text.account_center_page_no_data_text(),
                    self.statistical_form_page.
                    get_no_data_text_in_alarm_overview_pages())
            else:
                # sos报警总数
                sos_alarm_total = self.statistical_form_page.get_sos_total_alarm_number(
                )
                list_sos_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page.get_list_sos_alarm_total_number(
                        n)
                    list_sos_alarm_total.append(int(number))
                self.assertEqual(sos_alarm_total,
                                 str(sum(list_sos_alarm_total)), "sos报警数显示不一致")

                # 进卫星盲区报警总数
                enter_satellite_dead_zone_alarm_total = self.statistical_form_page.get_enter_satellite_dead_zone_alarm_total(
                )
                list_enter_satellite_dead_zone_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page.get_list_enter_satellite_dead_zone_alarm_total_number(
                        n)
                    list_enter_satellite_dead_zone_alarm_total.append(
                        int(number))
                self.assertEqual(
                    enter_satellite_dead_zone_alarm_total,
                    str(sum(list_enter_satellite_dead_zone_alarm_total)),
                    "进卫星盲区报警总数数显示不一致")

                # 出卫星盲区报警
                out_satellite_dead_zone_alarm_total = self.statistical_form_page2.get_out_satellite_dead_zone_alarm_total(
                )
                list_out_satellite_dead_zone_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_out_satellite_dead_zone_alarm_total_number(
                        n)
                    list_out_satellite_dead_zone_alarm_total.append(
                        int(number))
                self.assertEqual(
                    out_satellite_dead_zone_alarm_total,
                    str(sum(list_out_satellite_dead_zone_alarm_total)),
                    "出卫星盲区报警数显示不一致")

                # 开机报警
                starting_up_alarm_total = self.statistical_form_page2.get_starting_up_alarm_total(
                )
                list_starting_up_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_starting_up_alarm_total_number(
                        n)
                    list_starting_up_alarm_total.append(int(number))
                self.assertEqual(starting_up_alarm_total,
                                 str(sum(list_starting_up_alarm_total)),
                                 "开机报警数显示不一致")

                # 后视镜震动报警
                rearview_mirror_vibration_alarm_total = self.statistical_form_page2.get_rearview_mirror_vibration_alarm_total(
                )
                list_rearview_mirror_vibration_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_rearview_mirror_vibration_alarm_total_number(
                        n)
                    list_rearview_mirror_vibration_alarm_total.append(
                        int(number))
                self.assertEqual(
                    rearview_mirror_vibration_alarm_total,
                    str(sum(list_rearview_mirror_vibration_alarm_total)),
                    "后视镜震动报警数显示不一致")

                # 卫星第一次定位报警
                satellite_first_alarm_total = self.statistical_form_page2.get_satellite_first_positioning_alarm_total(
                )
                list_satellite_first_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_satellite_first_positioning_alarm_total_number(
                        n)
                    list_satellite_first_alarm_total.append(int(number))
                self.assertEqual(satellite_first_alarm_total,
                                 str(sum(list_satellite_first_alarm_total)),
                                 "卫星第一次定位报警数显示不一致")

                # 外电低电报警
                outer_low_electricity_alarm_total = self.statistical_form_page2.get_outer_low_electricity_alarm_total(
                )
                list_outer_low_electricity_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_outer_low_electricity_alarm_total_number(
                        n)
                    list_outer_low_electricity_alarm_total.append(int(number))
                self.assertEqual(
                    outer_low_electricity_alarm_total,
                    str(sum(list_outer_low_electricity_alarm_total)),
                    "外电低电报警数显示不一致")

                # 外电低电保护报警
                electricity_protect_alarm_total = self.statistical_form_page2.get_outer_low_electricity_protect_alarm_total(
                )
                list_electricity_protect_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_outer_low_electricity_protect_alarm_total_number(
                        n)
                    list_electricity_protect_alarm_total.append(int(number))
                self.assertEqual(
                    electricity_protect_alarm_total,
                    str(sum(list_electricity_protect_alarm_total)),
                    "外电低电保护报警数显示不一致")

                # 换卡报警
                change_card_alarm_total = self.statistical_form_page2.get_change_card_alarm_total(
                )
                list_change_card_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_change_card_alarm_total_number(
                        n)
                    list_change_card_alarm_total.append(int(number))
                self.assertEqual(change_card_alarm_total,
                                 str(sum(list_change_card_alarm_total)),
                                 "换卡报警数显示不一致")

                # 关机报警
                shutdown_alarm_total = self.statistical_form_page2.get_shutdown_alarm_total(
                )
                list_shutdown_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_shutdown_alarm_total_number(
                        n)
                    list_shutdown_alarm_total.append(int(number))
                self.assertEqual(shutdown_alarm_total,
                                 str(sum(list_shutdown_alarm_total)),
                                 "关机报警数显示不一致")

                # 外电低电保护后飞行模式报警
                flight_mode_alarm_total = self.statistical_form_page2.get_flight_mode_alarm_total(
                )
                list_flight_mode_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_flight_mode_alarm_total_number(
                        n)
                    list_flight_mode_alarm_total.append(int(number))
                self.assertEqual(flight_mode_alarm_total,
                                 str(sum(list_flight_mode_alarm_total)),
                                 "外电低电保护后飞行模式报警数显示不一致")

                # 拆卸报警
                disassembly_alarm_total = self.statistical_form_page2.get_disassembly_alarm_total(
                )
                list_disassembly_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_disassembly_alarm_total_number(
                        n)
                    list_disassembly_alarm_total.append(int(number))
                self.assertEqual(disassembly_alarm_total,
                                 str(sum(list_disassembly_alarm_total)),
                                 "拆卸报警数显示不一致")

                # 非法移动告警
                illegal_move_alarm_total = self.statistical_form_page2.get_illegal_move_alarm_total(
                )
                list_illegal_move_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_illegal_move_alarm_total_number(
                        n)
                    list_illegal_move_alarm_total.append(int(number))
                self.assertEqual(illegal_move_alarm_total,
                                 str(sum(list_illegal_move_alarm_total)),
                                 "非法移动告警数显示不一致")

                # 后备电池电量不足告警
                low_battery_alarm_total = self.statistical_form_page2.get_reserve_battery_low_battery_alarm_total(
                )
                list_low_battery_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_reserve_battery_low_battery_alarm_total_number(
                        n)
                    list_low_battery_alarm_total.append(int(number))
                self.assertEqual(low_battery_alarm_total,
                                 str(sum(list_low_battery_alarm_total)),
                                 "后备电池电量不足告警数显示不一致")

                # 越界告警
                across_boundaries_alarm_total = self.statistical_form_page2.get_across_boundaries_alarm_total(
                )
                list_across_boundaries_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_across_boundaries_alarm_total_number(
                        n)
                    list_across_boundaries_alarm_total.append(int(number))
                self.assertEqual(across_boundaries_alarm_total,
                                 str(sum(list_across_boundaries_alarm_total)),
                                 "越界告警数显示不一致")

                # 断电报警
                power_outages_alarm_total = self.statistical_form_page2.get_power_outages_alarm_total(
                )
                list_power_outages_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_power_outages_alarm_total_number(
                        n)
                    list_power_outages_alarm_total.append(int(number))
                self.assertEqual(power_outages_alarm_total,
                                 str(sum(list_power_outages_alarm_total)),
                                 "断电报警数显示不一致")

                # 声控报警
                acoustic_alarm_total = self.statistical_form_page2.get_acoustic_alarm_total(
                )
                list_acoustic_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_acoustic_alarm_total_number(
                        n)
                    list_acoustic_alarm_total.append(int(number))
                self.assertEqual(acoustic_alarm_total,
                                 str(sum(list_acoustic_alarm_total)),
                                 "声控报警数显示不一致")

                # 伪基站报警
                pseudo_base_station_alarm_total = self.statistical_form_page2.get_pseudo_base_station_alarm_total(
                )
                list_pseudo_base_station_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_pseudo_base_station_alarm_total_number(
                        n)
                    list_pseudo_base_station_alarm_total.append(int(number))
                self.assertEqual(
                    pseudo_base_station_alarm_total,
                    str(sum(list_pseudo_base_station_alarm_total)),
                    "伪基站报警数显示不一致")
                # 震动报警
                vibration_alarm_total = self.statistical_form_page2.get_vibration_alarm_total(
                )
                list_vibration_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_vibration_alarm_total_number(
                        n)
                    list_vibration_alarm_total.append(int(number))
                self.assertEqual(vibration_alarm_total,
                                 str(sum(list_vibration_alarm_total)),
                                 "震动报警数显示不一致")

                # 进入电子围栏
                enter_electronic_fence_total = self.statistical_form_page2.get_enter_electronic_fence_alarm_total(
                )
                list_enter_electronic_fence_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_enter_electronic_fence_alarm_total_number(
                        n)
                    list_enter_electronic_fence_total.append(int(number))
                self.assertEqual(enter_electronic_fence_total,
                                 str(sum(list_enter_electronic_fence_total)),
                                 "进入电子围栏数显示不一致")

                # 离开电子围栏
                leave_electronic_fence_total = self.statistical_form_page2.get_leave_electronic_fence_alarm_total(
                )
                list_leave_electronic_fence_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_leave_electronic_fence_alarm_total_number(
                        n)
                    list_leave_electronic_fence_total.append(int(number))
                self.assertEqual(leave_electronic_fence_total,
                                 str(sum(list_leave_electronic_fence_total)),
                                 "离开电子围栏数显示不一致")

                # 超速报警
                super_speed_alarm_total = self.statistical_form_page2.get_super_speed_alarm_total(
                )
                list_super_speed_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_super_speed_alarm_total_number(
                        n)
                    list_super_speed_alarm_total.append(int(number))
                self.assertEqual(super_speed_alarm_total,
                                 str(sum(list_super_speed_alarm_total)),
                                 "超速报警数显示不一致")

                # 位移报警
                displacement_alarm_total = self.statistical_form_page2.get_displacement_alarm_total(
                )
                list_displacement_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_displacement_alarm_total_number(
                        n)
                    list_displacement_alarm_total.append(int(number))
                self.assertEqual(displacement_alarm_total,
                                 str(sum(list_displacement_alarm_total)),
                                 "位移报警数显示不一致")

                # 低电报警
                low_electricity_alarm_total = self.statistical_form_page2.get_low_electricity_alarm_total(
                )
                list_low_electricity_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_low_electricity_alarm_total_number(
                        n)
                    list_low_electricity_alarm_total.append(int(number))
                self.assertEqual(low_electricity_alarm_total,
                                 str(sum(list_low_electricity_alarm_total)),
                                 "低电报警数显示不一致")

                # ACC关闭
                acc_close_alarm_total = self.statistical_form_page2.get_acc_close_alarm_total(
                )
                list_acc_close_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_acc_close_alarm_total_number(
                        n)
                    list_acc_close_alarm_total.append(int(number))
                self.assertEqual(acc_close_alarm_total,
                                 str(sum(list_acc_close_alarm_total)),
                                 "ACC关闭数显示不一致")

                # ACC开启
                acc_open_alarm_total = self.statistical_form_page2.get_acc_open_alarm_total(
                )
                list_acc_open_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_acc_open_alarm_total_number(
                        n)
                    list_acc_open_alarm_total.append(int(number))
                self.assertEqual(acc_open_alarm_total,
                                 str(sum(list_acc_open_alarm_total)),
                                 "ACC开启数显示不一致")

                # 进入围栏
                enter_fence_alarm_total = self.statistical_form_page2.get_enter_fence_alarm_total(
                )
                list_enter_fence_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_enter_fence_alarm_total_number(
                        n)
                    list_enter_fence_alarm_total.append(int(number))
                self.assertEqual(enter_fence_alarm_total,
                                 str(sum(list_enter_fence_alarm_total)),
                                 "进入围栏数显示不一致")

                # 离线告警
                offline_alarm_total = self.statistical_form_page2.get_offline_alarm_total(
                )
                list_offline_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_offline_alarm_total_number(
                        n)
                    list_offline_alarm_total.append(int(number))
                self.assertEqual(offline_alarm_total,
                                 str(sum(list_offline_alarm_total)),
                                 "离线告警数显示不一致")

                # 离开围栏
                leave_fence_alarm_total = self.statistical_form_page2.get_leave_fence_alarm_total(
                )
                list_leave_fence_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_leave_fence_alarm_total_number(
                        n)
                    list_leave_fence_alarm_total.append(int(number))
                self.assertEqual(leave_fence_alarm_total,
                                 str(sum(list_leave_fence_alarm_total)),
                                 "离开围栏数显示不一致")

                # 黑车围栏告警
                illegal_taxis_fence_alarm_total = self.statistical_form_page2.get_illegal_taxis_fence_alarm_total(
                )
                list_illegal_taxis_fence_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_illegal_taxis_fence_alarm_total_number(
                        n)
                    list_illegal_taxis_fence_alarm_total.append(int(number))
                self.assertEqual(
                    illegal_taxis_fence_alarm_total,
                    str(sum(list_illegal_taxis_fence_alarm_total)),
                    "黑车围栏告警数显示不一致")

                # 停留告警
                stay_alarm_total = self.statistical_form_page2.get_stay_alarm_total(
                )
                list_stay_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_stay_alarm_total_number(
                        n)
                    list_stay_alarm_total.append(int(number))
                self.assertEqual(stay_alarm_total,
                                 str(sum(list_stay_alarm_total)), "停留告警数显示不一致")

                # 长时间不进
                long_time_not_enter_alarm_total = self.statistical_form_page2.get_long_time_not_enter_alarm_total(
                )
                list_long_time_not_enter_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_long_time_not_enter_alarm_total_number(
                        n)
                    list_long_time_not_enter_alarm_total.append(int(number))
                self.assertEqual(
                    long_time_not_enter_alarm_total,
                    str(sum(list_long_time_not_enter_alarm_total)),
                    "长时间不进数显示不一致")

                # 长时间不出
                long_time_not_out_alarm_total = self.statistical_form_page2.get_long_time_not_out_alarm_total(
                )
                list_long_time_not_out_alarm_total = []
                for n in range(web_total):
                    number = self.statistical_form_page2.get_list_long_time_not_out_alarm_total_number(
                        n)
                    list_long_time_not_out_alarm_total.append(int(number))
                self.assertEqual(long_time_not_out_alarm_total,
                                 str(sum(list_long_time_not_out_alarm_total)),
                                 "长时间不出数显示不一致")

            self.driver.default_frame()
            self.driver.wait()

        csv_file.close()
class TestCase37AccountCenterSearchLowerClientVerify(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriverServer(choose='chrome')
        self.base_url = self.driver.base_url
        self.base_page = BasePageServer(self.driver, self.base_url)
        self.login_page = LoginPage(self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPage(
            self.driver, self.base_url)
        self.account_center_page_details = AccountCenterDetailsPage(
            self.driver, self.base_url)
        self.assert_text = AssertText()
        self.driver.set_window_max()
        self.account_center_page_read_csv = AccountCenterPageReadCsv()
        self.log_in_base = LogInBaseServer(self.driver, self.base_page)
        self.account_center_change_page = AccountCenterChangePage(
            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_search_lower_client(self):
        '''通过csv测试账户详情--下级客户--查找不同账号功能'''

        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录账号
        self.log_in_base.log_in()
        self.driver.wait(1)
        self.account_center_page_navi_bar.click_account_center_button()
        self.account_center_change_page.switch_fast_sale_enable()
        self.account_center_change_page.switch_to_fast_sale_frame()

        csv_file = self.account_center_page_read_csv.read_csv(
            'search_different_account.csv')
        csv_data = csv.reader(csv_file)
        for row in csv_data:
            search_account = {"account": row[0]}

            # 查找账户
            search_result = self.account_center_page_details.subordinate_account_search(
                search_account["account"])
            if type(search_result) is str:
                self.assertIn(
                    self.assert_text.account_center_page_no_data_text(),
                    search_result, "搜索结果为暂无数据时,提示不一致")

            else:
                for subscript in range(len(search_result)):
                    text = search_result[subscript].split("(")[0]
                    self.assertIn(search_account["account"], text, "搜索结果不一致")

            self.driver.wait()

        # 直接选择用户
        for user in range(8):
            self.account_center_page_details.fast_sales()
            self.account_center_page_details.click_list_subordinate_client(
                user + 1)

        # 验证enter键输入
        self.account_center_page_details.fast_sales()
        self.account_center_page_details.search_subordinate_client_click_enter(
            "1234")

        self.driver.wait()
        self.driver.default_frame()
        csv_file.close()
class TestCase136SafeAreaRelevance(unittest.TestCase):
    """ jimitest账号,围栏关联设备 """

    # author:邓肖斌

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

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

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

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

        # 选择围栏
        self.safe_area_page.click_select_fence_button()
        # 点击关联
        self.safe_area_page.click_relevance_button()
        # 获取当前围栏关联的设备总数
        dev_num = self.safe_area_page.get_total_num_of_dev_relation_fences()
        # 获取实际条数
        cur_num = self.safe_area_page.get_all_num_of_dev_relation_fences()
        # 关闭
        self.safe_area_page.click_close()
        self.assertEqual(dev_num, cur_num)

        # 点击关联
        self.safe_area_page.click_relevance_button()
        # 取消
        self.safe_area_page.click_cancel_edit()

        # 点击关联
        self.safe_area_page.click_relevance_button()
        # 循环点击左侧的客户树
        for n in range(5):
            self.safe_area_page.click_customer(n)
            # 获取右侧暂无数据的属性
            attribute = self.safe_area_page.get_no_data_attribute()
            if 'display: none;' in attribute:
                text = self.safe_area_page.get_text_no_data()
                self.assertIn(self.assert_text.account_center_page_no_data_text(), text)
            else:
                # 点击收起默认组
                self.safe_area_page.click_close_default_group()
                group_number = self.safe_area_page.get_total_group()
                for m in range(group_number):
                    # 点击每一个分组
                    group_total_dev = self.safe_area_page.get_total_dev_in_per_group(m)
                    self.safe_area_page.click_open_per_group(m)
                    list_total_dev = self.safe_area_page.get_list_dev_in_per_group(m)
                    self.assertEqual(group_total_dev, str(list_total_dev))
                    self.safe_area_page.click_open_per_group(m)

        # 验证已选中的设备数量和统计的是否一致
        count_dev_number = self.safe_area_page.get_count_dev_number()
        get_list_total_number = self.safe_area_page.get_list_total_number()
        self.assertEqual(str(get_list_total_number), count_dev_number)