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)
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)
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)
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()
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)
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()
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)
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()
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)
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)
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()
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)