class TestSearchDisHonest2(MyTest): "查老赖_02" a = Read_Ex() ELEMENT = a.read_excel("search_dishonest") @classmethod def setUpClass(cls): super().setUpClass() cls.dishone = Dishonest(cls.driver, cls.ELEMENT) cls.operation = Operation(cls.driver) cls.company = CompanyFunc(cls.driver, cls.ELEMENT) def setUp(self): self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_in_main"]).click() @getimage def test_ss_0006_01_0(self): "输入搜索词,点击搜索,不在展示热搜区域" log.info(self.test_ss_0006_01_0.__doc__) try: # self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.dishone.into_dishonest_mid().click() self.operation.adb_send_input( By.ID, self.ELEMENT["dishonest_mid_input"], "宝鸡有一群怀揣着梦想的少年相信在牛大叔的带领下会创造生命的奇迹网络科技有限公司", self.device, ) self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_mid_clean_iv"]).click() flag = self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_mid_hot_scope"]) self.assertFalse(flag, "热搜区域存在") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0006_02_0(self): "输入马云,最新搜索词,排在第一个" log.info(self.test_ss_0006_02_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "马凯", self.device) self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_mid_clean_iv"]).click() hot_words = self.operation.new_find_elements( By.XPATH, self.ELEMENT["dishonest_history_search"]) self.assertEqual(hot_words[0].text, "马凯", "最新搜索词,不在第一位") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0006_03_0(self): "从历史搜索进入后,该条记录排在历史搜索第一位" log.info(self.test_ss_0006_03_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 hot_words = self.operation.new_find_elements( By.XPATH, self.ELEMENT["dishonest_history_search"]) log.info("历史搜索词,第二个是:{}".format(hot_words[1].text)) old_word = hot_words[1].text hot_words[1].click() self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_mid_clean_iv"]).click() new_words = self.operation.new_find_elements( By.XPATH, self.ELEMENT["dishonest_history_search"]) self.assertEqual(new_words[0].text, old_word, "搜索词顺序未发生变化") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0006_04_0(self): "连续输入10次不同的关键词,最后一次输入为历史搜索的第一条记录" log.info(self.test_ss_0006_04_0.__doc__) try: self.dishone.clean_search_history() self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 name_list = [ "王思聪", "王思松", "吴京", "马里奥", "宝鸡有一群", "赵静", "诸葛亮", "赵云", "曹操", "终于第十个了", ] for name in name_list: log.info("输入搜索词:{}".format(name)) self.operation.adb_send_input( By.ID, self.ELEMENT["dishonest_mid_input"], name, self.device) self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_mid_clean_iv"]).click() history_words = self.operation.new_find_elements( By.XPATH, self.ELEMENT["dishonest_history_search"]) for i in range(10): log.info("历史:{} vs 输入:{}".format(history_words[i].text, name_list[9 - i])) self.assertEqual(history_words[i].text, name_list[9 - i], "名字顺序不一致") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0006_05_0(self): "「搜索中间页」,点击「清除最近搜索」按钮,弹窗提示" log.info(self.test_ss_0006_05_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_del_history"]).click() toast_text = self.operation.new_find_element( By.ID, "com.tianyancha.skyeye:id/txt_msg").text self.assertEqual(toast_text, "确定要清空搜索记录?", "清除搜索历史记录,提示信息不正确") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0006_06_0(self): "「搜索中间页」,点击「清除最近搜索」按钮,点击取消" log.info(self.test_ss_0006_06_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_del_history"]).click() # 点击一键清除 self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_del_cancel"]).click() # 点击取消 search_text = self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_old_search"]).text self.assertEqual(search_text, "最近搜索", "最近搜索标签不存在") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0006_07_0(self): "「搜索中间页」,点击「清除最近搜索」按钮,点击确定" log.info(self.test_ss_0006_07_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_del_history"]).click() # 点击一键清除 self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_del_submit"]).click() # 点击确认 hot_search_text = self.operation.new_find_element( By.XPATH, "//*[@resource-id='{}']/android.widget.TextView".format( self.ELEMENT["dishonest_mid_hot_scope"]), ).text self.assertEqual(hot_search_text, "热门搜索", "热门搜索标签不存在") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_sssx_0001_01_0(self): "搜索马云凤后按河南省-新乡市地域筛选" log.info(self.test_sssx_0001_01_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "马云凤", self.device) self.dishone.search_city("河南省", "新乡市") list_number = (len( self.operation.new_find_elements( By.XPATH, self.ELEMENT["list_ico"])) - 1) # 列表数 people_number = self.operation.count_num( By.XPATH, self.ELEMENT["tab_person_count"]) tab_number = self.operation.count_num( By.XPATH, self.ELEMENT["dishonest_tab_name"]) flag = False if list_number == people_number == tab_number: flag = True self.assertTrue(flag, "tab数、count数、列表数不一致") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_sssx_0001_02_0(self): "按地域筛选后,所有的筛选结果均属于该地域" log.info(self.test_sssx_0001_02_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "马云峰", self.device) self.dishone.search_city("江苏省", "无锡市") tab_number = self.operation.count_num( By.XPATH, self.ELEMENT["dishonest_tab_name"]) for i in range(2, tab_number + 2): car_id = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_card_id"].format(i)).text city_info = card_operation().check_region(car_id) self.assertIn("无锡市", city_info, "该老赖所属区域不符合") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_sssx_0001_03_0(self): "搜索马云,记录count数,按地域筛选后,重置筛选条件,count数不变" log.info(self.test_sssx_0001_03_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "马云", self.device) tab_number = self.operation.count_num( By.XPATH, self.ELEMENT["dishonest_tab_name"]) self.dishone.search_city("河南省", "新乡市") self.dishone.back_all_regions() new_number = self.operation.count_num( By.XPATH, self.ELEMENT["dishonest_tab_name"]) self.assertEqual(new_number, tab_number, "两次的count数不一致") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_sssx_0002_01_0(self): "失信自然人,使用年龄进行筛选且列表的失信人年龄都满足" log.info(self.test_sssx_0002_01_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "马云", self.device) self.dishone.search_year("1999年", 0.6, 0.5) tab_number = self.operation.count_num( By.XPATH, self.ELEMENT["dishonest_tab_name"]) for i in range(2, tab_number + 2): log.info(i) card_id = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_card_id"].format(i)).text log.info(card_id) self.assertIn("1999", card_id, "年龄不一致") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_sssx_0002_02_0(self): "使用年龄筛选2005年,列表里没有匹配结果" log.info(self.test_sssx_0002_02_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "马云", self.device) self.dishone.search_year("2005年", 0.6, 0.8) people_text = self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_people_null"]).text self.assertEqual(people_text, "抱歉,没有找到相关失信自然人", "有搜索结果") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_sssx_0002_03_0(self): "取消年龄筛选,count数与筛选前一致" log.info(self.test_sssx_0002_03_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "马云", self.device) tab_number = self.operation.count_num( By.XPATH, self.ELEMENT["dishonest_tab_name"]) # 无筛选条件的count数 self.dishone.search_year("1999年", 0.6, 0.5) self.dishone.search_year("全部", y1=0.4, y2=0.8) new_number = self.operation.count_num( By.XPATH, self.ELEMENT["dishonest_tab_name"]) self.assertEqual(new_number, tab_number, "两次的count数不一致") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_sssx_0003_01_0(self): "按性别男进行筛选" log.info(self.test_sssx_0003_01_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "司马峰", self.device) self.dishone.search_sex("男") tab_number = self.operation.count_num( By.XPATH, self.ELEMENT["dishonest_tab_name"]) for i in range(2, tab_number + 2): car_id = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_card_id"].format(i)).text sex_info = card_operation().check_sex(car_id) self.assertEqual("男", sex_info, "该老赖性别不符合") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_sssx_0003_02_0(self): "按性别筛选,男+女=总的count 数" log.info(self.test_sssx_0003_01_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "王子涵", self.device) count_number = self.operation.count_num( By.XPATH, self.ELEMENT["dishonest_tab_name"]) # 无筛选条件的count数 self.dishone.search_sex("男") man_number = self.operation.count_num( By.XPATH, self.ELEMENT["dishonest_tab_name"]) # 男性的count数 self.dishone.search_sex("女") woman_number = self.operation.count_num( By.XPATH, self.ELEMENT["dishonest_tab_name"]) # 女性的count数 self.assertEqual(count_number, man_number + woman_number, "男+女的count数不等于总count数") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_sssx_0004_01_0(self): "「失信自然人」可以通过「地域」+「出生年份」复合筛选" log.info(self.test_sssx_0004_01_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "李星杰", self.device) self.dishone.search_city("安徽省", "安徽省全省") self.dishone.search_year("1998年", 0.6, 0.5) car_id = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_card_id"].format(2)).text city_info = card_operation().check_region(car_id) self.assertIn("安徽省", city_info, "所属区域不符合筛选条件") self.assertIn("1998", car_id, "出生年月不正确") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception
def setUpClass(cls): super().setUpClass() # 获取excel cls.ELEMENT = Read_Ex().read_excel("company_detail_wlx") cls.vip_user = cls.account.get_account("vip", "0")
class Search_company_sift_vip(MyTest, Operation): """查公司_高级筛选_04""" a = Read_Ex() ELEMENT = a.read_excel("test_search_company_sift") account = Account() phone_vip = account.get_account("vip") @classmethod def setUpClass(cls): super().setUpClass() cls.sift_opera = SiftOperation(cls.driver, cls.ELEMENT) cls.sift_opera.login_vip(cls.phone_vip, cls.account.get_pwd()) @classmethod def tearDownClass(cls): cls.account.release_account(cls.phone_vip, 'vip') super().tearDownClass() @getimage def test_001_cgs_gjsx_rjzzq_p0(self): """查公司-搜索中间页,高级筛选:软件著作权""" log.info(self.test_001_cgs_gjsx_rjzzq_p0.__doc__) try: self.sift_opera.search_key(1) num_rjzzq = random.randint(1, 2) selectTarget, selectText = self.sift_opera.get_key( "more_rjzzq_title", "more_rjzzq", num_rjzzq) result = self.sift_opera.detail4company(selectText, "著作权", selectTarget, num_rjzzq) if num_rjzzq == 2 and not result: # 断言-详情页「著作权」维度无数据时 self.assertFalse(result, "===失败-高级筛选:「无软件著作权」错误===") else: if num_rjzzq == 1: # 断言-「有软件著作权」 self.assertNotIn("0", result, "===失败-高级筛选:「有软件著作权」错误===") else: # 断言-详情页「有作品著作权」,「无软件著作权」 self.assertIn("0", result, "===失败-高级筛选:「无软件著作权」错误===") except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_002_cgs_gjsx_rzxx_p0(self): """查公司-搜索中间页,高级筛选:融资信息""" log.info(self.test_002_cgs_gjsx_rzxx_p0.__doc__) try: self.sift_opera.search_key(1) num_rzxx = random.randint(1, 2) selectTarget, selectText = self.sift_opera.get_key( "more_rzxx_title", "more_rzxx", num_rzxx) result = self.sift_opera.detail4company(selectText, "融资历程", selectTarget, num_rzxx) if num_rzxx == 1: # 断言-有融资历程 self.assertTrue(result, "===失败-高级筛选:「{}」错误===".format(selectText)) else: # 断言-无融资历程 self.assertFalse(result, "===失败-高级筛选:「{}」错误===".format(selectText)) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception
class Company_detail_Test_wlx_1(MyTest, Operation): """未登录用户进入公司详情页历史信息校验""" a = Read_Ex() ELEMENT = a.read_excel("company_detail_wlx") def go_company_detail(self, company_name, index=0): self.search_company(company_name) self.new_find_elements( By.XPATH, self.ELEMENT["company_name_search_result_list"] )[index].click() @getimage def test_history_info_001(self): log.info(self.test_history_info_001.__doc__) try: self.go_company_detail("百度") self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["history_moduel"]) self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["his_gsxx"], click=True) self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["login_new"]), "进入历史信息-工商信息未调起登录" ) self.driver.keyevent(4) self.new_find_element(By.XPATH, self.ELEMENT["his_lsgd"]).click() self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["login_new"]), "进入历史信息-历史股东未调起登录" ) self.driver.keyevent(4) self.new_find_element(By.XPATH, self.ELEMENT["his_dytz"]).click() self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["login_new"]), "进入历史信息-对外投资未调起登录" ) self.driver.keyevent(4) self.swipe_up_while_ele_located( By.XPATH, self.ELEMENT["his_ktgg"], click=True, check_cover=True ) self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["login_new"]), "进入历史信息-开庭公告未调起登录" ) self.driver.keyevent(4) self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["his_flss"], click=True) self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["login_new"]), "进入历史信息-法律诉讼未调起登录" ) self.driver.keyevent(4) self.new_find_element(By.XPATH, self.ELEMENT["his_fygg"]).click() self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["login_new"]), "进入历史信息-法院公告未调起登录" ) self.driver.keyevent(4) self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["his_xzcf"], click=True) self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["login_new"]), "进入历史信息-行政处罚未调起登录" ) self.driver.keyevent(4) self.new_find_element(By.XPATH, self.ELEMENT["his_gqcz"]).click() self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["login_new"]), "进入历史信息-股权出质未调起登录" ) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_history_info_002(self): log.info(self.test_history_info_002.__doc__) try: self.go_company_detail("宁夏天元锰业") self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["history_moduel"]) self.swipe_up_while_ele_located( By.XPATH, self.ELEMENT["his_bzxr"], click=True, check_cover=True ) self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["login_new"]), "进入历史信息-被执行人未调起登录" ) self.driver.keyevent(4) self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["his_dcdy"], click=True) self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["login_new"]), "进入历史信息-动产抵押未调起登录" ) self.driver.keyevent(4) self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["his_wzba"], click=True) self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["login_new"]), "进入历史信息-网站备案未调起登录" ) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e
class Human_detailTest(MyTest, Operation): a = Read_Ex() ELEMENT = a.read_excel('Human_detail') @getimage def test_001(self): login_status = self.is_login() if login_status == True: self.logout() self.search_boss('马云') self.new_find_element(By.XPATH, "//android.widget.TextView[@text='陆兆禧']", outtime=10).click() # 登录VIP账户 self.login(10222222229, 'ls123456') # 人员页分享存长图限制 save_pic = self.isElementExist(By.ID, self.ELEMENT['save_pic'], outtime=10) self.assertTrue(save_pic) print('有保存按钮') share = self.isElementExist(By.ID, self.ELEMENT['share']) self.assertTrue(share) print('有分享按钮') # 曾经任职 used_to_work = self.new_find_element(By.XPATH, self.ELEMENT['used_to_work']) used_to_work_count = self.count(used_to_work) used_to_work.click() # 历史法人列表 his_legal = self.new_find_element(By.ID, self.ELEMENT['his_legal']) his_legal1 = self.count(his_legal) his_legal_count = self.count( self.new_find_element(By.XPATH, self.ELEMENT['his_legal_count'])) self.assertEqual(his_legal1, his_legal_count, '历史法人count校验错误') # 历史股东列表 his_shareholder = self.new_find_element( By.ID, self.ELEMENT['his_shareholder']) his_shareholder1 = self.count(his_shareholder) his_shareholder.click() his_shareholder_count = self.count( self.new_find_element(By.XPATH, self.ELEMENT['his_shareholder_count'])) self.assertEqual(his_shareholder1, his_shareholder_count, '历史股东count校验错误') # 历史高管列表 his_executive = self.new_find_element(By.ID, self.ELEMENT['his_executive']) his_executive1 = self.count(his_executive) his_executive.click() his_executive_count = self.count( self.new_find_element(By.XPATH, self.ELEMENT['his_executive_count'])) self.assertEqual(his_executive1, his_executive_count, '历史高管count校验错误') # 校验里外count his_count = his_legal_count + his_shareholder_count + his_executive_count self.assertEqual(used_to_work_count, his_count, '曾经任职和历史数据count不对') self.driver.keyevent(4) # 担任法人 sleep(1) fr1 = self.new_find_element( By.ID, self.ELEMENT['act_as_legal_representative']) fr1.click() sleep(1) fr2 = self.new_find_element( By.XPATH, self.ELEMENT['legal_representative_companies']) frcount1 = self.count(fr1) frcount2 = self.count(fr2) self.assertEqual(frcount1, frcount2, '担任法人count数check错误') # 担任股东 gd1 = self.new_find_element(By.ID, self.ELEMENT['act_as_shareholder']) gd1.click() gd2 = self.new_find_element(By.XPATH, self.ELEMENT['shareholder_companies']) # 获取count数 gdcount1 = self.count(gd1) gdcount2 = self.count(gd2) self.assertEqual(gdcount1, gdcount2, '担任股东count数check错误') # 担任高管 gg1 = self.new_find_element(By.ID, self.ELEMENT['executive']) gg1.click() gg2 = self.new_find_element(By.XPATH, self.ELEMENT['executive_companies']) ggcount1 = self.count(gg1) ggcount2 = self.count(gg2) self.assertEqual(ggcount1, ggcount2, '担任高管count数check错误') # 实际控制权 s1 = self.new_find_element(By.ID, self.ELEMENT['actual_control']) s1.click() s2 = self.new_find_element(By.XPATH, self.ELEMENT['actual_control_count']) s1count = self.count(s1) s2count = self.count(s2) self.assertEqual(s1count, s2count, '实际控制权count数check错误') self.new_find_element(By.XPATH, self.ELEMENT['view_investment_chain']).click() a = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/app_title_name').text self.assertEqual(a, '投资链', '投资链页面title错误') self.driver.keyevent(4) # 合作伙伴 h1 = self.new_find_element(By.ID, self.ELEMENT['partners']) h1.click() h2 = self.new_find_element(By.XPATH, self.ELEMENT['partners_count']) h1count = self.count(h1) h2count = self.count(h2) self.assertEqual(h1count, h2count, '合作伙伴count数check错误') @getimage def test_002(self): # 人员详情页执行监控同步 self.search_boss('马云') self.new_find_element(By.XPATH, "//android.widget.TextView[@text='陆兆禧']", outtime=10).click() # 检测是否监控当前人员,如监控执行取消监控 if self.new_find_element(By.XPATH, "//android.widget.TextView[@text='监控']", outtime=10): print('未监控') else: self.new_find_element(By.ID, self.ELEMENT['monitoring']).click() self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/btn_pos').click() print('已取消监控') # 监控人员 self.new_find_element(By.ID, self.ELEMENT['monitoring']).click() self.driver.keyevent(4) self.new_find_element( By.XPATH, "//android.widget.TextView[@text='陆兆禧']").click() self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/tv_text_monitoring', outtime=20) monitoring = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_text_monitoring', outtime=20).text self.assertEqual(monitoring, '已监控', '监控失败') # 天眼风险页面监控态同步 self.new_find_element(By.ID, self.ELEMENT['riskinfo']).click() monitoring_setail = self.isElementExist( By.ID, 'com.tianyancha.skyeye:id/tv_monitoring', outtime=15) self.assertFalse(monitoring_setail, '监控后天眼风险页面监控按钮未同步') # 回到搜索结果页 while True: try: self.driver.find_element_by_id( 'com.tianyancha.skyeye:id/et_search_input') break except: self.driver.keyevent(4) # 取消监控 self.new_find_element( By.XPATH, "//android.widget.TextView[@text='陆兆禧']").click() self.new_find_element(By.ID, self.ELEMENT['monitoring'], outtime=10).click() self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/btn_pos').click() self.driver.keyevent(4) self.new_find_element( By.XPATH, "//android.widget.TextView[@text='陆兆禧']").click() sleep(5) self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/tv_text_monitoring') monitor = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_text_monitoring').text self.assertEqual(monitor, '监控', '取消监控失败') # 取消监控,天眼风险页面同步 self.new_find_element(By.ID, self.ELEMENT['riskinfo']).click() monitoring_setail = self.isElementExist( By.ID, 'com.tianyancha.skyeye:id/tv_monitoring', outtime=10) self.assertTrue(monitoring_setail, '取消监控后天眼风险页面监控按钮未同步') @getimage def test_003(self): # 天眼风险页执行监控同步 self.search_boss('马云') self.new_find_element( By.XPATH, "//android.widget.TextView[@text='陆兆禧']").click() # 检测是否监控当前人员,如监控执行取消监控 if self.new_find_element(By.XPATH, "//android.widget.TextView[@text='监控']", outtime=10): print('未监控') else: self.new_find_element(By.ID, self.ELEMENT['monitoring']).click() self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/btn_pos').click() print('已取消监控') # 进入天眼风险页进行监控 self.new_find_element(By.ID, self.ELEMENT['riskinfo']).click() # 判断页面是否有监控按钮 if self.isElementExist(By.ID, 'com.tianyancha.skyeye:id/tv_monitoring', outtime=20): self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_monitoring').click() sleep(5) monitoring_setail = self.isElementExist( By.ID, 'com.tianyancha.skyeye:id/tv_monitoring') self.assertFalse(monitoring_setail, '天眼风险页面监控失败') self.driver.keyevent(4) self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_text_monitoring', outtime=20) monitoring = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_text_monitoring', outtime=20).text self.assertEqual(monitoring, '已监控', '天眼风险监控后按钮同步失败') else: self.assertTrue( self.isElementExist(By.ID, 'com.tianyancha.skyeye:id/tv_monitoring', outtime=20), '天眼风险页无监控按钮') @getimage def test_004(self): self.search_boss('马云') self.new_find_element( By.XPATH, "//android.widget.TextView[@text='陆兆禧']").click() name = self.new_find_element(By.ID, self.ELEMENT['human_detail_name']).text self.new_find_element(By.ID, self.ELEMENT['person_report'], outtime=10).click() # 人员报告权益 a = self.isElementExist(By.XPATH, self.ELEMENT['report_content_1']) self.assertTrue(a, '人员报告权益第1条错误') a = self.isElementExist(By.XPATH, self.ELEMENT['report_content_2']) self.assertTrue(a, '人员报告权益第2条错误') a = self.isElementExist(By.XPATH, self.ELEMENT['report_content_3']) self.assertTrue(a, '人员报告权益第3条错误') a = self.isElementExist(By.XPATH, self.ELEMENT['report_content_4']) self.assertTrue(a, '人员报告权益第4条错误') a = self.isElementExist(By.XPATH, self.ELEMENT['report_content_5']) self.assertTrue(a, '人员报告权益第5条错误') a = self.isElementExist(By.XPATH, self.ELEMENT['report_content_6']) self.assertTrue(a, '人员报告权益第6条错误') a = self.isElementExist(By.XPATH, self.ELEMENT['report_content_7']) self.assertTrue(a, '人员报告权益第7条错误') sleep(2) # 人员报告样本预览 self.new_find_element(By.ID, self.ELEMENT['sample_preview']).click() a = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/pdf_web_title_name', outtime=10).text self.assertEqual(a, '样本预览', '样本预览页错误') self.driver.keyevent(4) self.new_find_element(By.XPATH, self.ELEMENT['report_download']).click() # 报告下载默认选择PDF格式校验 pdf = self.new_find_element( By.XPATH, "//*[@resource-id='com.tianyancha.skyeye:id/order_report_pdf_iv']" ).is_selected() self.assertTrue(pdf, '人员报告页未默认选中PDF格式') # 人员报告下载页名字校验 name1 = self.new_find_element(By.ID, self.ELEMENT['name_report']).text self.assertEqual(name, name1, '报告下载页名字和详情页名字不一致') # 人员报告pdf下载,邮箱修改,结果校验 a = self.isElementExist(By.ID, self.ELEMENT['email_del']) if a == True: # 判断是否有默认邮箱 self.new_find_element(By.ID, self.ELEMENT['email_del']).click() # self.new_find_element(By.ID, self.ELEMENT['email']).click() self.new_find_element( By.ID, self.ELEMENT['email']).send_keys('*****@*****.**') self.new_find_element(By.ID, self.ELEMENT['send_report']).click() # 人员名称校验 name2 = self.new_find_elements(By.XPATH, self.ELEMENT['report_name'])[0].text self.assertEqual(name2, name, '订单页名字与详情页人员名字不符') # 订单页校验报告类型 dow_type = self.new_find_elements( By.XPATH, self.ELEMENT['report_download_type'])[0].text self.assertEqual(dow_type, 'PDF', '订单页人员报告下载类型与选择的不符') # 校验接收邮箱 rev_email = self.new_find_elements(By.XPATH, self.ELEMENT['rec_email'])[0].text self.assertEqual(rev_email, '*****@*****.**', '订单页接收邮箱错误') self.driver.keyevent(4) self.new_find_element(By.XPATH, self.ELEMENT['report_download'], outtime=15).click() # 下载PDF+Word报告 self.new_find_element( By.XPATH, "//*[@resource-id='com.tianyancha.skyeye:id/order_report_pdf_word_iv']" ).click() self.new_find_element(By.ID, self.ELEMENT['send_report'], outtime=10).click() dow_type = self.new_find_elements( By.XPATH, self.ELEMENT['report_download_type'])[0].text self.assertEqual(dow_type, 'PDF+Word', '订单页人员报告下载类型与选择的不符_PDF+WORD') # 校验下载类型 rev_email = self.new_find_elements(By.XPATH, self.ELEMENT['rec_email'])[0].text self.assertEqual(rev_email, '*****@*****.**', '订单页接收邮箱错误_PDF+WORD') # 校验人名 name3 = self.new_find_elements(By.XPATH, self.ELEMENT['report_name'])[0].text self.assertEqual(name3, name, '订单页名字与详情页人员名字不符_PDF+WORD') @getimage def test_005(self): self.search_boss('马云') self.new_find_element( By.XPATH, "//android.widget.TextView[@text='陆兆禧']").click() # 获取人员详情页自身风险count riskself = self.new_find_element(By.XPATH, self.ELEMENT['risk_self_count']) riskself_count = self.count(riskself, 0) # 获取人员详情页周边风险count around = self.new_find_element(By.XPATH, self.ELEMENT['risk_around_count']) around_count = self.count(around, 0) # 滑动banner切换到预警提醒 x = self.driver.get_window_size()['width'] y = self.driver.get_window_size()['height'] self.driver.swipe(0.5 * x, 0.4 * y, 0.25 * x, 0.4 * y, 300) # 获取人员详情页预警提醒count warning = self.new_find_element(By.XPATH, self.ELEMENT['risk_warning_count']) warning_count = self.count(warning, 0) # 进入天眼风险详情页 self.new_find_element(By.ID, self.ELEMENT['riskinfo']).click() a = self.new_find_element(By.ID, self.ELEMENT['riskinfo_self']) b = self.count(a) self.assertEqual(riskself_count, b, '自身风险count人员详情和风险详情不一样') c = self.new_find_element(By.XPATH, self.ELEMENT['riskinfo_self_count']) d = self.count(c) self.assertEqual(b, d, '天眼风险详情页自身风险count数校验错误') # 周边风险count校验 c = self.new_find_element(By.ID, self.ELEMENT['riskinfo_around']) d = self.count(c) c.click() self.assertEqual(around_count, d, '周边风险count人详情和天眼风险详情里外不一样') e = self.new_find_element(By.XPATH, self.ELEMENT['riskinfo_around_count']) f = self.count(e) self.assertEqual(around_count, f, '天眼风险详情页周边风险count数校验错误') # 预警提醒count校验 a = self.new_find_element(By.ID, self.ELEMENT['riskinfo_warning']) b = self.count(a) a.click() self.assertEqual(warning_count, b, '预警提醒count人详情和天眼风险详情里外不一样') sleep(1) c = self.new_find_element(By.XPATH, self.ELEMENT['riskinfo_warning_count']) d = self.count(c) self.assertEqual(warning_count, d, '天眼风险详情页预警提醒count数校验错误') self.driver.keyevent(4)
class Human_detailTest(MyTest, Operation): a = Read_Ex() ELEMENT = a.read_excel('Human_detail') @getimage def test_001(self): login_status = self.is_login() if login_status == True: self.logout() self.login(10222222229, 'ls123456') # 预警提醒count数校验 self.new_find_element(By.ID, self.ELEMENT['search_company']).click() self.new_find_element(By.ID, self.ELEMENT['search_box']).click() self.new_find_element( By.ID, self.ELEMENT['middle_search_box']).send_keys('大连易航科技有限公司') self.new_find_element( By.XPATH, "//*[@resource-id='com.tianyancha.skyeye:id/search_legal_man_tv' and @text='孙凯']" ).click() self.new_find_element(By.ID, self.ELEMENT['riskinfo']).click() c = self.new_find_element(By.ID, self.ELEMENT['riskinfo_warning']) d = self.count(c) c.click() self.swipeUp() e = self.new_find_elements( By.XPATH, "//*[@resource-id='com.tianyancha.skyeye:id/tv_company_risk_count']" ) l = [] # 获取每个item的count,放进l for i in e: b = self.count(i) l.append(b) count = sum(l) self.assertEqual(d, count, '预警提醒count数量与列表不符') @getimage def test_002(self): # 周边风险count数校验 self.new_find_element(By.ID, self.ELEMENT['search_box']).click() self.new_find_element( By.ID, self.ELEMENT['middle_search_box']).send_keys('阳江市海陵镇龙轩旅游用品店') self.new_find_element( By.XPATH, "//*[@resource-id='com.tianyancha.skyeye:id/search_legal_man_tv' and @text='陈文勇']" ).click() self.new_find_element(By.ID, self.ELEMENT['riskinfo']).click() c = self.new_find_element(By.ID, self.ELEMENT['riskinfo_around']) d = self.count(c) e = self.new_find_elements( By.XPATH, "//*[@resource-id='com.tianyancha.skyeye:id/tv_company_risk_count']" ) l = [] # 获取每个item的count,放进l for i in e: b = self.count(i) l.append(b) count = sum(l) self.assertEqual(d, count, '周边风险count数量与列表不符') @getimage def test_003(self): self.new_find_element(By.ID, self.ELEMENT['search_boss']).click() self.new_find_element(By.XPATH, self.ELEMENT['top_search']).click() sleep(3) name = self.new_find_element(By.ID, self.ELEMENT['human_detail_name']).text # 进入纠错页面 self.new_find_element(By.ID, self.ELEMENT['error']).click() self.new_find_element(By.ID, self.ELEMENT['feedback_content']).clear() # 校验未填写问题描述时toast self.new_find_element(By.ID, self.ELEMENT['error_commit_btn']).click() result = self.new_find_element(By.XPATH, self.ELEMENT['error_toast']).text self.assertEqual(result, '请填写问题描述', '纠错页面未填写问题描述时toast提示错误') # 纠错页人员名称校验 error_name = self.new_find_element(By.ID, self.ELEMENT['error_name']).text self.assertEqual(name, error_name, '纠错页面人员名称与人员详情页不一致') # 信息有误维度选项校验 e = self.new_find_elements(By.XPATH, self.ELEMENT['dimension_content']) dimension_content = ['老板头像', '简介', '关联公司', '关联风险', '其他'] for i in range(len(e)): b = e[i].text self.assertIn(b, dimension_content, '人员纠错页面维度选项<' + b + '>选项没有') # 问题描述 a = self.new_find_element(By.ID, self.ELEMENT['feedback_content']) b = self.new_find_element(By.ID, self.ELEMENT['feedback_content_len']) default = a.text l = b.text self.assertEqual(l, '0/300', '纠错页面默认文案长度错误') self.assertEqual(default, '请详细描述您发现的问题,可获得更快的处理', '纠错反馈页面问题描述默认文案错误') a.send_keys('测试数据,请忽略') content = a.text self.assertEqual(content, '测试数据,请忽略', '纠错反馈页面问题描述输入内容校验错误') l = b.text self.assertEqual(l, '8/300', '纠错页面默认文案长度错误') self.driver.keyevent(4) self.new_find_element(By.ID, self.ELEMENT['error']).click() a = self.new_find_element(By.ID, self.ELEMENT['feedback_content']) content1 = a.text self.assertEqual(content, content1, '纠错页面草稿保存错误') sleep(3) a.clear() # 从相册添加图片 self.new_find_element(By.ID, self.ELEMENT['add_pic']).click() self.new_find_element(By.XPATH, self.ELEMENT['add_pic_album']).click() # 添加图片超过3张toast a = self.new_find_elements(By.XPATH, self.ELEMENT['select_pic']) for i in range(4): a[i].click() b = self.new_find_element(By.XPATH, self.ELEMENT['select_pic_toast']).text self.assertEqual(b, '最多选择3张图片', '从相册添加图片超出提示错误') # 上传图片校验 self.new_find_element(By.ID, self.ELEMENT['ok_btn']).click() delete_btn = self.new_find_elements(By.XPATH, self.ELEMENT['delete_pic']) self.assertEqual(len(delete_btn), 3, '上传图片数量错误') # 删除图片 for i in range(3): self.new_find_elements(By.XPATH, self.ELEMENT['delete_pic'])[0].click() self.assertFalse( self.isElementExist(By.XPATH, self.ELEMENT['delete_pic']), '删除图片功能错误') self.swipeUp() # 联系电话 self.assertEqual( self.new_find_element(By.ID, self.ELEMENT['phone_num'], outtime=10).text, '10222222229', '人员纠错页登录用户默认电话号码错误') self.new_find_element(By.ID, self.ELEMENT['phone_num']).clear() self.assertEqual( self.new_find_element(By.ID, self.ELEMENT['phone_num'], outtime=10).text, '输入手机号,便于您获得处理反馈', '人员纠错页登录用户默认电话号码错误')
class Discuss_Test_1(MyTest, Operation): """问答_01""" a = Read_Ex() ELEMENT = a.read_excel("discuss") def go_question_ugc(self, type=1, company=None): # 进入问题编辑器入口方法1:问大家列表进入; 2:公司详情侧边问大家按钮 ;3:投资机构进入问答编辑器; # 4:品牌机构进入问题编辑器;5:人员详情页进入问答编辑器6:公司详情页底部问大家入口 # 问大家列表进入问题编辑器 if type == 1: self.new_find_element(By.ID, self.ELEMENT["home_discuss"]).click() self.new_find_element( By.ID, self.ELEMENT["diacuss_list_send_ask"]).click() # 公司详情-侧边问大家按钮进入问大家编辑器 elif type == 2: self.search_company(company) self.new_find_element( By.XPATH, "(//*[@resource-id='com.tianyancha.skyeye:id/tv_company_name'])[1]", ).click() sleep(2) self.new_find_element( By.ID, self.ELEMENT["company_official_ask"]).click() # 投资机构进入问答编辑器 elif type == 3: self.search_company(company) self.new_find_element(By.XPATH, self.ELEMENT["tzjg_name"]).click() sleep(3) self.new_find_element(By.ID, self.ELEMENT["brand_question_tab"]).click() self.new_find_element( By.XPATH, self.ELEMENT["company_question_ugc"]).click() # 品牌机构进入问题编辑器 elif type == 4: self.search_company(company) self.new_find_element(By.XPATH, self.ELEMENT["brand_name"]).click() sleep(3) self.new_find_element(By.ID, self.ELEMENT["brand_question_tab"]).click() self.new_find_element( By.XPATH, self.ELEMENT["company_question_ugc"]).click() # 人员详情页进入问答编辑器 elif type == 5: self.new_find_element(By.ID, self.ELEMENT["search_boss"]).click() self.new_find_element(By.XPATH, self.ELEMENT["top_search"]).click() sleep(3) self.new_find_element(By.ID, self.ELEMENT["person_question_tab"]).click() self.new_find_element( By.XPATH, self.ELEMENT["company_question_ugc"]).click() # 公司详情页底部问大家入口 elif type == 6: self.search_company(company) self.new_find_element( By.XPATH, "(//*[@resource-id='com.tianyancha.skyeye:id/tv_company_name'])[1]", ).click() sleep(2) x = self.driver.get_window_size()["width"] y = self.driver.get_window_size()["height"] count = 0 while True: if count > 8: print("-----------滑动找不到问大家入口,请手动校验-----------") break else: try: self.driver.find_element_by_xpath( self.ELEMENT["company_question_ugc"]) break except: self.driver.swipe(0.5 * x, 0.8 * y, 0.5 * x, 0.2 * y, 1200) count += 1 self.new_find_element( By.XPATH, self.ELEMENT["company_question_ugc"]).click() def go_hot_question_list(self, type=0, company=None): # 进入问大家问题列表方法 # 首页--商业头条进入问大家列表 if type == 0: self.new_find_element(By.XPATH, self.ELEMENT["home_headline"]).click() self.new_find_element(By.ID, self.ELEMENT["home_all_question"]).click() # 首页问大家tab进入热门问答列表 elif type == 1: self.new_find_element(By.ID, self.ELEMENT["home_discuss"]).click() # 公司详情-进入热门问答列表 elif type == 2: self.search_company(company) self.new_find_element( By.XPATH, "(//*[@resource-id='com.tianyancha.skyeye:id/tv_company_name'])[1]", ).click() sleep(2) self.swipe_up_while_ele_located( By.XPATH, self.ELEMENT["company_hot_question_title"], check_cover=True) self.swipe_up_while_ele_located( By.XPATH, self.ELEMENT["company_all_hot_question"], check_cover=True, click=True) # 投资机构进入热门问答列表 elif type == 3: self.search_company(company) self.new_find_element(By.XPATH, self.ELEMENT["tzjg_name"]).click() sleep(3) self.new_find_element(By.ID, self.ELEMENT["brand_question_tab"]).click() self.new_find_element( By.XPATH, self.ELEMENT["company_all_hot_question"]).click() # 品牌机构进入热门问答列表 elif type == 4: self.search_company(company) self.new_find_element(By.XPATH, self.ELEMENT["brand_name"]).click() sleep(3) self.new_find_element(By.ID, self.ELEMENT["brand_question_tab"]).click() self.new_find_element( By.XPATH, self.ELEMENT["company_all_hot_question"]).click() # 人员详情页进入热门问答列表 elif type == 5: self.new_find_element(By.ID, self.ELEMENT["search_boss"]).click() self.new_find_element(By.XPATH, self.ELEMENT["top_search"]).click() sleep(3) self.new_find_element(By.ID, self.ELEMENT["person_question_tab"]).click() self.new_find_element( By.XPATH, self.ELEMENT["company_all_hot_question"]).click() elif type == 6: self.search_company(company) self.new_find_element( By.XPATH, "(//*[@resource-id='com.tianyancha.skyeye:id/tv_company_name'])[1]", ).click() sleep(2) self.new_find_element(By.ID, self.ELEMENT["company_self"]).click() self.swipe_up_while_ele_located( By.XPATH, self.ELEMENT["company_hot_question_title"], click=True) def go_mydiscuss_tab(self, tab=0, back_max=30): back_count = 0 while True: if back_count > back_max: break try: self.new_find_element(By.ID, "com.tianyancha.skyeye:id/home_tab1") break except: self.driver.keyevent(4) back_count += 1 self.new_find_element(By.ID, "com.tianyancha.skyeye:id/tab_iv_5").click() self.new_find_element( By.ID, "com.tianyancha.skyeye:id/iv_my_answers").click() if tab == 1: self.new_find_element(By.XPATH, self.ELEMENT["mytab_myanswer_tab"]).click() elif tab == 2: self.new_find_element(By.XPATH, self.ELEMENT["mytab_invite_tab"]).click() elif tab == 0: pass @getimage def test_001(self): import re log.info(self.test_001.__doc__) try: # 首页商业头条进入热门问答列表 self.go_hot_question_list() self.assertTrue( self.new_find_elements(By.XPATH, self.ELEMENT["hot_questions_list"]), "首页商业头条进入热门问答列表失败", ) self.driver.keyevent(4) # 首页商业头条进入问题详情页 a = self.new_find_element(By.ID, self.ELEMENT["home_question_name"]).text list_title = re.search(r"[\u4e00-\u9fa5]+", a).group() self.new_find_element(By.ID, self.ELEMENT["home_question_name"]).click() b = self.ocr(By.XPATH, self.ELEMENT["question_detail_title"]) detail_title = re.search(r"[\u4e00-\u9fa5]+", b).group() self.assertEqual(list_title, detail_title, "首页商业头条进入问题详情页失败") self.driver.keyevent(4) # 首页问大家tab进入热门问答列表 self.go_hot_question_list(1) self.assertTrue( self.new_find_elements(By.XPATH, self.ELEMENT["hot_questions_list"]), "首页问大家tab进入热门问答列表失败", ) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_002(self): log.info(self.test_002.__doc__) try: # 公司详情页--官方信息进入问答热门问答列表、问题编辑器 self.go_hot_question_list(2, "深圳市腾讯计算机系统有限公司") self.assertTrue( self.new_find_elements(By.XPATH, self.ELEMENT["hot_questions_list"], outtime=10), "公司详情页进入热门问答列表失败", ) self.driver.keyevent(4) self.new_find_element( By.ID, self.ELEMENT["company_official_ask"]).click() self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["question_ugc_title"]), "公司详情页进入问题编辑器失败", ) self.assertFalse( self.new_find_element( By.ID, self.ELEMENT["question_ugc_relation_company"]), "公司详情页进入问答编辑器有关联公司按钮", ) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_003(self): log.info(self.test_003.__doc__) try: self.go_hot_question_list(3, "腾讯") self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["hot_questions_list"]), "投资机构热门问答列表失败", ) self.driver.keyevent(4) self.new_find_element( By.XPATH, self.ELEMENT["company_question_ugc"]).click() self.assertTrue( self.new_find_element(By.XPATH, self.ELEMENT["question_ugc_toolbar"]), "投资机构无法进入编辑器", ) self.assertFalse( self.new_find_element( By.ID, self.ELEMENT["question_ugc_relation_company"]), "投资机构详情页进入问答编辑器有关联公司按钮", ) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_004(self): log.info(self.test_004.__doc__) try: self.go_hot_question_list(4, "腾讯") self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["hot_questions_list"]), "项目品牌进入热门问答列表失败", ) self.driver.keyevent(4) self.new_find_element( By.XPATH, self.ELEMENT["company_question_ugc"]).click() self.assertTrue( self.new_find_element(By.XPATH, self.ELEMENT["question_ugc_toolbar"]), "项目品牌无法进入编辑器", ) self.assertFalse( self.new_find_element( By.ID, self.ELEMENT["question_ugc_relation_company"]), "项目品牌详情页进入问答编辑器有关联公司按钮", ) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_005(self): log.info(self.test_005.__doc__) try: self.go_hot_question_list(6, "上海熊猫互娱文化有限公司") self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["hot_questions_list"]), "公司详情页自主信息tab进入热门问答列表失败", ) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_006(self): log.info(self.test_006.__doc__) try: self.go_hot_question_list(5) self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["hot_questions_list"]), "人员详情页进入热门问答列表失败", ) self.driver.keyevent(4) self.new_find_element( By.XPATH, self.ELEMENT["company_question_ugc"]).click() self.assertTrue( self.new_find_element(By.XPATH, self.ELEMENT["question_ugc_toolbar"]), "人员详情页无法进入编辑器", ) self.assertFalse( self.new_find_element( By.ID, self.ELEMENT["question_ugc_relation_company"]), "人员详情页进入问答编辑器有关联公司按钮", ) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_007(self): log.info(self.test_007.__doc__) try: self.new_find_element(By.XPATH, self.ELEMENT["home_headline"]).click() sleep(10) question = self.new_find_element( By.ID, "com.tianyancha.skyeye:id/rl_title", outtime=10) question.click() self.swipeUp() self.new_find_element(By.XPATH, self.ELEMENT["reply"], outtime=10).click() self.new_find_element(By.ID, self.ELEMENT["reply_edit"]).send_keys( self.ELEMENT["answer"]) self.new_find_element(By.ID, self.ELEMENT["reply_send"]).click() login_use_pwd = self.isElementExist(By.XPATH, self.ELEMENT["login_use_pwd"]) login_new = self.isElementExist(By.XPATH, self.ELEMENT["login_new"]) if login_use_pwd == True or login_new == True: result = True else: result = False self.assertTrue(result, "问答点击发送回复未调起登录") except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e
class Human_Test(MyTest, Operation): a = Read_Ex() ELEMENT = a.read_excel('Human_detail') @getimage def test_001(self): login_status = self.is_login() if login_status == True: self.logout() self.new_find_element(By.ID, self.ELEMENT['search_boss']).click() self.new_find_element(By.XPATH, self.ELEMENT['top_search']).click() # 首次进入人员详情页点击'我知道了按钮' if self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/btn', outtime=10): self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/btn').click() # 获取头像旁的名字 name = self.new_find_element(By.ID, self.ELEMENT['human_detail_name']).text self.new_find_element(By.XPATH, self.ELEMENT['head_image']).click() # 获取蒙层的名字 name1 = self.new_find_element(By.ID, self.ELEMENT['human_detail_name_1']).text self.assertEqual(name, name1, '蒙层前后名字不一致') self.driver.keyevent(4) # 天眼风险调起登录 self.new_find_element(By.ID, self.ELEMENT['riskinfo']).click() login_use_pwd = self.isElementExist(By.XPATH, self.ELEMENT['login_use_pwd']) login_new = self.isElementExist(By.XPATH, self.ELEMENT['login_new']) if login_use_pwd == True or login_new == True: result = True else: result = False self.assertTrue(result, '进入天眼风险未调起登录') self.driver.keyevent(4) # 人员报告拉起登录 self.new_find_element(By.ID, self.ELEMENT['person_report']).click() login_use_pwd = self.isElementExist(By.XPATH, self.ELEMENT['login_use_pwd']) login_new = self.isElementExist(By.XPATH, self.ELEMENT['login_new']) if login_use_pwd == True or login_new == True: result = True else: result = False self.assertTrue(result, '进入报告页未调起登录') self.driver.keyevent(4) # 监控拉起登录 self.new_find_element(By.ID, self.ELEMENT['monitoring']).click() login_use_pwd = self.isElementExist(By.XPATH, self.ELEMENT['login_use_pwd']) login_new = self.isElementExist(By.XPATH, self.ELEMENT['login_new']) if login_use_pwd == True or login_new == True: result = True else: result = False self.assertTrue(result, '点击监控未调起登录') @getimage def test_002(self): # 未登录进入热搜人员无VIP限制 self.new_find_element(By.ID, self.ELEMENT['search_boss']).click() self.new_find_element(By.XPATH, self.ELEMENT['top_search']).click() self.assertFalse( self.isElementExist(By.XPATH, self.ELEMENT['vip_text']), '未登录进入热搜人员详情有VIP限制') @getimage def test_003(self): # 非VIP进入非热搜人员 self.search_boss('马云') self.new_find_element(By.XPATH, "//android.widget.TextView[@text='陆兆禧']", outtime=10).click() self.login(10222222225, 'ls123456') # 人员页分享存长图无按钮 save_pic = self.isElementExist(By.ID, self.ELEMENT['save_pic']) self.assertFalse(save_pic) share = self.isElementExist(By.ID, self.ELEMENT['share']) self.assertFalse(share) # 老板详情VIP限制 self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT['vip_text']), '非VIP进入热搜人员详情无VIP限制') # 信用报告VIP限制 self.new_find_element(By.ID, self.ELEMENT['person_report']).click() self.new_find_element( By.ID, self.ELEMENT['person_report_vip_download']).click() self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT['vip_boss_report']), '非VIP人员报告无VIP弹窗') # 回到人员从详情页方法 while True: try: self.driver.find_element_by_xpath(self.ELEMENT['vip_text']) break except: self.driver.keyevent(4) # 天眼风险VIP限制 self.new_find_element(By.ID, self.ELEMENT['riskinfo']).click() vip_warning = self.isElementExist(By.XPATH, self.ELEMENT['vip_warning'], outtime=10) self.assertTrue(vip_warning, '非VIP天眼风险无VIP限制') self.driver.keyevent(4) # 股权穿透VIP限制 self.new_find_element(By.ID, self.ELEMENT['map_stock']).click() vip_stock = self.isElementExist(By.XPATH, self.ELEMENT['vip_stock'], outtime=10) self.assertTrue(vip_stock, '非VIP股权穿透图无VIP限制')
def setUpClass(cls): super().setUpClass() # 获取excel cls.ELEMENT = Read_Ex().read_excel("discuss") cls.vip_user = cls.account.get_account("vip", "0")
class Search_relationTest(MyTest, Operation): """查关系_04""" a = Read_Ex() ELEMENT = a.read_excel("Search_relation") account = Account() phone_vip = account.get_account("vip") @classmethod def setUpClass(cls): super().setUpClass() cls.sift_opera = SiftOperation(cls.driver, cls.ELEMENT) @classmethod def tearDownClass(cls): cls.account.release_account(cls.phone_vip, 'vip') super().tearDownClass() def random_sift_hit(self, select_tag, index=None): """ 随机上滑动,选中省市区/一二级行业 :param select_tag: True:地区;False:行业 :param index: 0,省(自治区、直辖市)/一级行业;1,市/二级行业;2,区(县) :return: 返回值为选中项 """ if select_tag: tarList = [ "select_list_level_one", "select_list_level_two", "select_list_level_three", ] else: tarList = ["select_list_level_one", "select_list_level_three"] sift_list = self.new_find_elements(By.XPATH, self.ELEMENT[tarList[index]]) if sift_list is None or len(sift_list) == 1: randNum = 1 else: randNum = random.randint(2, len(sift_list)) if randNum == len(sift_list): randNum = len(sift_list) - 1 l = self.driver.get_window_size() y1 = l["height"] * 0.5 y2 = l["height"] * 0.2 if index == 0: x1 = l["width"] * 0.15 for i in range(random.randint(0, 4)): self.driver.swipe(x1, y1, x1, y2, 1500) area = self.new_find_element( By.XPATH, self.ELEMENT[tarList[index]] + "[" + str(randNum) + "]/android.widget.TextView", ) areaText = area.text area.click() return areaText elif index == 1: x1 = l["width"] * 0.5 for i in range(random.randint(0, 4)): self.driver.swipe(x1, y1, x1, y2, 1500) area = self.new_find_element( By.XPATH, self.ELEMENT[tarList[index]] + "[" + str(randNum) + "]/android.widget.TextView", ) areaText = area.text if len(sift_list) != 1: area.click() return areaText else: x1 = l["width"] * 0.85 if sift_list is None: area = self.new_find_element( By.XPATH, self.ELEMENT[tarList[index - 1]] + "[1]/android.widget.TextView", ) areaText = area.text area.click() return areaText else: for i in range(random.randint(0, 4)): self.driver.swipe(x1, y1, x1, y2, 1500) area = self.new_find_element( By.XPATH, self.ELEMENT[tarList[index]] + "[" + str(randNum) + "]/android.widget.TextView", ) areaText = area.text area.click() return areaText @getimage def test_001_cgx_contact_p0(self): """查关系搜索结果页身边老板""" log.info(self.test_001_cgx_contact_p0.__doc__) try: self.sift_opera.login_vip(self.phone_vip, self.account.get_pwd()) self.new_find_element(By.ID, self.ELEMENT["search_relation"]).click() self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.new_find_element(By.ID, self.ELEMENT["from_input_textview"]).click() self.new_find_element(By.ID, self.ELEMENT["search_contacts"]).click() time.sleep(5) # 通讯录身边老板功能 if self.isElementExist(By.ID, "com.tianyancha.skyeye:id/btn_close_guide"): self.new_find_element( By.ID, "com.tianyancha.skyeye:id/btn_close_guide").click() if self.isElementExist(By.ID, self.ELEMENT["tv_boss_count"]): # 断言-查询通讯录身边老板,进入通讯录列表页 self.assertTrue( self.isElementExist(By.ID, self.ELEMENT["tv_boss_count"]), "===失败-授权后查询通讯录老板失败===", ) # 断言-点击身边老板列表页item,进入公司详情页 tarCompanyName = self.new_find_element( By.XPATH, self.ELEMENT["contact_list_item"]).text self.new_find_element( By.XPATH, self.ELEMENT["contact_list_item"]).click() companyName = self.new_find_element( By.ID, self.ELEMENT["firm_detail_name_tv"]).text self.assertEqual(tarCompanyName, companyName, "===失败-点击通讯录公司,跳转错误===") self.driver.keyevent(4) else: if self.isElementExist( By.XPATH, '//*[@class="android.widget.TextView" and @text="没有发现通讯录中的老板"]', ): log.info("===通讯录中无老板===") else: if self.isElementExist(By.ID, self.ELEMENT["to_monitor_btn"]): self.new_find_element( By.ID, self.ELEMENT["to_monitor_btn"]).click() self.new_find_element( By.ID, self.ELEMENT["permission_deny_button"]).click() self.new_find_element( By.ID, self.ELEMENT["search_contacts"]).click() # 断言-未授权通讯录读取权限,再次查询身边老板,弹出二次授权弹框 self.assertTrue( self.isElementExist( By.ID, self.ELEMENT["permission_allow_button"]), "===失败-未授权通讯录权限,再次查通讯录中老板,二次授权弹窗弹出失败===", ) self.new_find_element( By.ID, self.ELEMENT["permission_allow_button"]).click() # 断言-通讯录读取权限二次授权通过,查询身边老板 self.assertTrue( self.isElementExist(By.ID, self.ELEMENT["iv_update"]), "===失败-授权通讯录读取权限后,查身边老板结果展示错误===", ) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_002_cgx_region_p0(self): """查关系-地区筛选""" log.info(self.test_002_cgx_region_p0.__doc__) try: self.sift_opera.search_key(2) self.new_find_element(By.ID, self.ELEMENT["select_region"]).click() region_Log_list = ["省(自治区、直辖市)", "市", "区(县)"] for i in range(3): area = self.random_sift_hit(True, i) log.info("===地区筛选:" + region_Log_list[i] + ":" + area + "===") addrInfo = area[0:2] self.new_find_element(By.XPATH, self.ELEMENT["from_target_item_1"]).click() self.new_find_element(By.XPATH, self.ELEMENT["sky_canvas"]).click() for i in range(20): if self.isElementExist(By.XPATH, self.ELEMENT["more_gsxx_dimension"]): self.new_find_element( By.XPATH, self.ELEMENT["more_gsxx_dimension"]).click() for i in range(20): if self.isElementExist( By.XPATH, self.ELEMENT["field_zcdz"]): # 普通公司校验 addr_detail = self.new_find_element( By.XPATH, self.ELEMENT["field_zcdz"] + self.ELEMENT["follow_textview"], ).text self.assertIn(addrInfo, addr_detail, "===失败-公司地址匹配错误===") break elif self.isElementExist( By.XPATH, self.ELEMENT["field_zs"]): # 事业单位校验 addr_detail = self.new_find_element( By.XPATH, self.ELEMENT["field_zs"] + self.ELEMENT["follow_textview"], ).text self.assertIn(addrInfo, addr_detail, "===失败-公司地址匹配错误===") break else: self.swipeUp(0.5, 0.7, 0.3, 2000) if i == 19: log.error("===未校验出结果===") break elif self.isElementExist(By.XPATH, self.ELEMENT["more_djxx_dimension"]): self.new_find_element( By.XPATH, self.ELEMENT["more_djxx_dimension"]).click() for i in range(20): if self.isElementExist( By.XPATH, self.ELEMENT["field_jjhdz"]): # 基金会校验 addr_detail = self.new_find_element( By.XPATH, self.ELEMENT["field_jjhdz"] + self.ELEMENT["follow_textview"], ).text self.assertIn(addrInfo, addr_detail, "===失败-公司地址匹配错误===") break elif self.isElementExist( By.XPATH, self.ELEMENT["field_zs"]): # 社会组织校验 addr_detail = self.new_find_element( By.XPATH, self.ELEMENT["field_zs"] + self.ELEMENT["follow_textview"], ).text self.assertIn(addrInfo, addr_detail, "===失败-公司地址匹配错误===") break elif self.isElementExist( By.XPATH, self.ELEMENT["field_dz"]): # 律师事务所校验 addr_detail = self.new_find_element( By.XPATH, self.ELEMENT["field_dz"] + self.ELEMENT["follow_textview"], ).text self.assertIn(addrInfo, addr_detail, "===失败-公司地址匹配错误===") break elif self.isElementExist( By.XPATH, self.ELEMENT["field_gsszd"]): # 台湾企业校验 addr_detail = self.new_find_element( By.XPATH, self.ELEMENT["field_gsszd"] + self.ELEMENT["follow_textview"], ).text self.assertIn(addrInfo, addr_detail, "===失败-公司地址匹配错误===") break else: self.swipeUp(0.5, 0.7, 0.3, 2000) if i == 19: log.error("===未校验出结果===") break else: self.swipeUp(0.5, 0.7, 0.3, 2000) if i == 19: log.info("断言失败-公司详情页未找到「工商信息/登记信息」") except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_003_cgx_industry_p0(self): """查关系-行业筛选""" log.info(self.test_003_cgx_industry_p0.__doc__) industry = None try: self.sift_opera.search_key(2) self.new_find_element(By.ID, self.ELEMENT["select_industry"]).click() industry_Log_list = ["一级行业", "二级行业"] for i in range(2): industry = self.random_sift_hit(False, i) log.info("===行业筛选:" + industry_Log_list[i] + ":" + industry + "===") # 若筛选无结果,重新筛选,最多筛选20次, if self.isElementExist(By.XPATH, self.ELEMENT["from_target_item_1"]): self.new_find_element( By.XPATH, self.ELEMENT["from_target_item_1"]).click() self.new_find_element(By.XPATH, self.ELEMENT["sky_canvas"]).click() log.info("行业筛选,断言公司名称:" + self.new_find_element( By.ID, self.ELEMENT["firm_detail_name_tv"]).text) for i in range(20): if self.isElementExist( By.XPATH, self.ELEMENT["more_gsxx_dimension"]): self.new_find_element( By.XPATH, self.ELEMENT["more_gsxx_dimension"]).click() # 断言-查关系搜索关键词,行业筛选 for i in range(20): if self.isElementExist( By.XPATH, '//*[@class="android.widget.TextView" and @text="' + industry + '"]', ): self.assertEqual( industry, self.new_find_element( By.XPATH, '//*[@class="android.widget.TextView" and @text="' + industry + '"]', ).text, "===失败-工商信息详情页中,行业筛选断言错误===", ) break else: self.swipeUp(0.5, 0.7, 0.3, 2000) if i == 19: log.info("行业筛选断言失败-工商信息详情页,行业未找到") break else: self.swipeUp(0.5, 0.7, 0.3, 2000) if i == 19: log.info("行业筛选断言失败-公司详情页未找到「工商信息」") else: log.info("行业筛选无结果!!!") except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception
class Search_companyTest(MyTest, Operation): """查公司_02""" a = Read_Ex() ELEMENT = a.read_excel("Search_company") def search_result(self, company, index=0): """进入关键词搜索结果列表第一家公司详情页""" self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys(company) self.new_find_elements(By.XPATH, "//*[@resource-id='com.tianyancha.skyeye:id/tv_company_name']")[index].click() def page_back(self): """页面返回""" self.new_find_element(By.ID,'com.tianyancha.skyeye:id/app_title_back').click() def go_address(self): '''进入查公司-搜索中间页-身边老板''' self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.new_find_element(By.XPATH, self.ELEMENT["address_book_entrance"]).click() result = self.isElementExist(By.ID,'com.tianyancha.skyeye:id/btn_close_guide') if result == True: self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/btn_close_guide').click() else: pass def login_page_check(self,way,element): '''判断是否在登录页面''' if way == 1: self.new_find_element(By.ID,element).click() elif way == 2: self.new_find_element(By.XPATH,element).click() result = self.isElementExist(By.ID,"com.tianyancha.skyeye:id/btv_title") text = self.new_find_element(By.ID,"com.tianyancha.skyeye:id/btv_title").text if text == '短信验证码登录': log.info('当前在短信验证码登录页面') elif text == '密码登录': log.info('当前在密码登录页面') return result @getimage def test_CGS_SSZJY_0001(self): '''搜索中间页-身边老板''' log.info(self.test_CGS_SSZJY_0001.__doc__) #判断登录&取热搜老板列表 login_status = self.is_login() if login_status == True: self.logout() else: pass self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/home_tab2').click() self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/txt_search_copy1').click() list = self.new_find_elements(By.ID, 'com.tianyancha.skyeye:id/tv_name') boss_01 = list[0].text boss_02 = list[1].text bossList = [boss_01, boss_02] log.info(bossList) self.new_find_element(By.ID, self.ELEMENT['middle_search_back']).click() self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/home_tab1').click() self.go_address() goal = '点击搜索中间页立即查看进入身边老板页' page_title = self.new_find_element(By.ID,'com.tianyancha.skyeye:id/app_title_name').text self.assertEqual(page_title,'身边老板',msg='错误————%s'%goal) result = self.isElementExist(By.XPATH,"//*[@class='android.widget.TextView' and @text='没有发现通讯录中的老板']") if result == True: goal_01 = '手机通讯录中无老板展示推荐监控' result_01 = self.isElementExist(By.ID,'com.tianyancha.skyeye:id/ll_boss_recommend_monitor') self.assertTrue(result_01,msg='错误———%s'%goal_01) goal_02 = '推荐监控老板为热门搜索老板' result_02_01 = self.isElementExist(By.XPATH,"//*[@resource-id='com.tianyancha.skyeye:id/tv_name' and @text='%s']"%boss_01) result_02_02 = self.isElementExist(By.XPATH,"//*[@resource-id='com.tianyancha.skyeye:id/tv_name' and @text='%s']"%boss_02) if result_02_01 == True and result_02_02 == True: result_02 = True else: result_02 = False self.assertTrue(result_02,msg='错误——%s'%goal_02) goal_03 = '未登录点击推荐老板卡片老板跳转登陆页' result_03 = self.login_page_check(2,'//androidx.recyclerview.widget.RecyclerView/android.widget.LinearLayout') self.page_back() self.assertTrue(result_03,msg='错误——%s'%goal_03) goal_04 = '未登录点击一键监控跳转登陆页' result_04 = self.login_page_check(1,'com.tianyancha.skyeye:id/tv_all_monitor') self.page_back() self.assertTrue(result_04,msg='错误——%s'%goal_04) goal_05 = '未登录点击卡片老板监控跳转登陆页' result_05 = self.login_page_check(2,"//*[@resource-id='com.tianyancha.skyeye:id/tv_monitoring']") self.page_back() self.assertTrue(result_05, msg='错误——%s'%goal_05) goal_06 = '已登录点击卡片老板监控toast监控成功/已取消监控' account = self.account.get_account() self.login(account,self.account.get_pwd()) self.go_address() self.new_find_element(By.XPATH,"//*[@resource-id='com.tianyancha.skyeye:id/tv_monitoring']").click() toast = self.new_find_element(By.XPATH, '/hierarchy/android.widget.Toast').text judge = self.isElementExist(By.ID,'com.tianyancha.skyeye:id/txt_title') if judge == True: self.new_find_element(By.ID,'com.tianyancha.skyeye:id/btn_neg').click() if toast == '已取消监控' or toast == '监控成功': result_06 = True else: result_06 = False self.assertTrue(result_06,msg='错误——%s,账号为——%s'%(goal_06,account)) goal_07 = '已登录点击一键监控按钮变成换一批' self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/tv_all_monitor').click() judge = self.isElementExist(By.ID,'com.tianyancha.skyeye:id/txt_title') if judge == True: self.new_find_element(By.ID,'com.tianyancha.skyeye:id/btn_neg').click() result_07 = self.isElementExist(By.XPATH,"//*[@class='android.widget.TextView' and @text='换一批']") self.assertTrue(result_07,msg='错误——%s,账号为——%s'%(goal_07,account)) goal_08 = '点击卡片老板已监控按钮换一批同步为一键监控' self.new_find_element(By.XPATH,"//*[@resource-id='com.tianyancha.skyeye:id/tv_monitoring']").click() result_08 = self.isElementExist(By.ID,'com.tianyancha.skyeye:id/tv_all_monitor') self.assertTrue(result_08,msg='错误——%s,账号为——%s'%(goal_08,account)) goal_09 = '点击换一批toast暂无更新' self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/tv_all_monitor').click() self.new_find_element(By.XPATH,"//*[@class='android.widget.TextView' and @text='换一批']").click() toast_09 = self.new_find_element(By.XPATH,'/hierarchy/android.widget.Toast').text self.assertEqual(toast_09,'暂无更新',msg='错误——%s,账号为——%s'%(goal_09,account)) goal_10 = '再次进入时页面时无推荐监控老板不展示推荐监控' self.page_back() self.new_find_element(By.XPATH, self.ELEMENT["address_book_entrance"]).click() result_10 = self.isElementExist(By.ID,'com.tianyancha.skyeye:id/ll_boss_recommend_monitor') self.assertFalse(result_10,msg='错误——%s,账号为——%s'%(goal_10,account)) #删除已监控数据 self.page_back() self.new_find_element(By.ID,self.ELEMENT['top_right_corner']).click()#返回首页 self.new_find_element(By.ID,'com.tianyancha.skyeye:id/tab_iv_5').click()#我的 self.new_find_element(By.ID,'com.tianyancha.skyeye:id/rl_my_monitoring').click()#我的监控 self.new_find_element(By.XPATH,"//*[@resource-id='com.tianyancha.skyeye:id/tv_tab_title' and @text='监控列表']").click()#监控列表 count = 1 while True: if count <= 10: self.new_find_element(By.XPATH,"//*[@resource-id='com.tianyancha.skyeye:id/tv_cancel_monitor']").click() count += 1 else: log.error('删除监控数据错误,账号-%s'%account) break self.logout() self.account.release_account(account) else: goal_01 = "手机通讯录中有老板查看通讯录列表页搜索框文案" text_01 = self.new_find_element(By.ID, self.ELEMENT["address_search_box"]).text self.assertEqual(text_01, "输入联系人姓名或手机号", "错误————%s" % goal_01) goal_02 = "手机通讯录无联系人变化,通讯录列表中点击更新能有提示" self.new_find_element(By.ID, self.ELEMENT["address_update"]).click() text_02 = self.new_find_element(By.XPATH, self.ELEMENT["address_widget_toast"]).text self.assertEqual(text_02, "没有发现新增", "错误————%s" % goal_02) @getimage def test_CGS_SSZJY_0002(self): '''搜索中间页-热门搜索模块''' log.info(self.test_CGS_SSZJY_0002.__doc__) goal = "点击热门搜索模块能进入对应公司详情页" self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() result = self.isElementExist(By.ID, self.ELEMENT["hotwords_all"]) if result == True: text_01 = self.new_find_elements(By.ID, self.ELEMENT["hotwords_first"])[0].text self.new_find_elements(By.ID, self.ELEMENT["hotwords_first"])[0].click() time.sleep(1) text_02 = self.new_find_element(By.ID, self.ELEMENT["companypage_name"]).text if text_01 in text_02: result = True else: result = False self.assertTrue(result, "错误————%s" % goal) else: log.error("未执行用例test_CGS_SSZJY_0002——无热门搜索模块") @getimage def test_CGS_SSZJY_0003(self): '''搜索中间页-最近搜索/浏览规则&交互''' log.info(self.test_CGS_SSZJY_0003.__doc__) self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() result = self.isElementExist(By.ID, self.ELEMENT["hotwords_all"]) if result == True: goal_02 = "点击最近搜索的记录进入搜索结果页" self.adb_send_input(By.ID, self.ELEMENT["middle_search_box"], "腾讯科技", self.device) self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() self.new_find_element(By.XPATH, self.ELEMENT["search_history_result_first"]).click() text_02 = self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).text self.assertEqual(text_02, "腾讯科技", "错误————%s" % goal_02) goal_03 = "有最近搜索记录不展示热门搜索" self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() result_03 = self.isElementExist(By.ID, self.ELEMENT["hotwords_all"]) self.assertFalse(result_03, "错误————%s" % goal_03) goal_04 = "有最近浏览记录不展示热门搜索" self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys("百度") self.new_find_element(By.XPATH, self.ELEMENT["search_result_first"]).click() self.new_find_element(By.ID, self.ELEMENT["app_title_back"]).click() self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() result_04 = self.isElementExist(By.ID, self.ELEMENT["hotwords_all"]) self.assertFalse(result_04, "错误————%s" % goal_04) goal_05 = "点击最近搜索的一键清除icon弹出确认弹框" self.new_find_element(By.ID, self.ELEMENT["search_history_delete"]).click() result_05 = self.isElementExist(By.ID, self.ELEMENT["pop_up"]) self.assertTrue(result_05, "错误————%s" % goal_05) goal_06 = "最近搜索-确认弹框中选择取消能返回搜索中间页" self.new_find_element(By.ID, self.ELEMENT["pop_up_cancel"]).click() result_06 = self.isElementExist(By.ID, self.ELEMENT["address_book_all"]) self.assertTrue(result_06, "错误————%s" % goal_06) goal_07 = "最近搜索-确认弹框中选择确认能清空最近搜索记录" self.new_find_element(By.ID, self.ELEMENT["search_history_delete"]).click() self.new_find_element(By.ID, self.ELEMENT["pop_up_sure"]).click() result_07 = self.isElementExist(By.ID, self.ELEMENT["search_history_all"]) self.assertFalse(result_07, "错误————%s" % goal_07) goal_08 = "点击最近浏览的一键清除icon弹出确认弹框" self.new_find_element(By.ID, self.ELEMENT["read_history_delete"]).click() result_08 = self.isElementExist(By.ID, self.ELEMENT["pop_up"]) self.assertTrue(result_08, "错误————%s" % goal_08) goal_09 = "最近浏览-确认弹框中选择取消能返回搜索中间页" self.new_find_element(By.ID, self.ELEMENT["pop_up_cancel"]).click() result_09 = self.isElementExist(By.ID, self.ELEMENT["address_book_all"]) self.assertTrue(result_09, "错误————%s" % goal_09) goal_10 = "最近浏览-确认弹框中选择确认能清空最近浏览记录" self.new_find_element(By.ID, self.ELEMENT["read_history_delete"]).click() self.new_find_element(By.ID, self.ELEMENT["pop_up_sure"]).click() result_10 = self.isElementExist(By.ID, self.ELEMENT["search_history_all"]) self.assertFalse(result_10, "错误————%s" % goal_10) goal_11 = "删除最近搜索&最近浏览能展示热门搜索" result_11 = self.isElementExist(By.ID, self.ELEMENT["hotwords_all"]) self.assertTrue(result_11, "错误————%s" % goal_11) goal_12 = "无最近搜索记录不展示最近搜索模块" result_12 = self.isElementExist(By.XPATH, self.ELEMENT["search_history_all"]) self.assertFalse(result_12, "错误————%s" % goal_12) goal_13 = "无最近浏览记录不展示最近浏览模块" result_13 = self.isElementExist(By.XPATH, self.ELEMENT["search_history_all"]) self.assertFalse(result_13, "错误————%s" % goal_13) else: log.error("未执行用例test_CGS_SSZJY_0003——无热门搜索模块") @getimage def test_CGS_SSZJY_0004(self): '''搜索中间页-最近搜索最多展示10条''' log.info(self.test_CGS_SSZJY_0004.__doc__) goal = "搜索11条关键词查看最近搜索记录" company_list = ["百度1","百度2","百度3","百度4","百度5","百度6","百度7","百度8","百度9","百度10","百度11"] self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() a = self.new_find_element(By.ID, self.ELEMENT["Recent_search_clean"]) if a == None: self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).click() for i in range(len(company_list)): self.adb_send_input(By.ID,self.ELEMENT["middle_search_box"],company_list[i],self.device) self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() i += 1 else: self.new_find_element(By.ID, self.ELEMENT["Recent_search_clean"]).click() self.new_find_element(By.ID, self.ELEMENT["pop_up_sure"]).click() for i in range(len(company_list)): self.adb_send_input(By.ID,self.ELEMENT["middle_search_box"],company_list[i],self.device) self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() i += 1 value1 = self.new_find_element(By.XPATH, self.ELEMENT["Recent_search1"]).text value2 = self.new_find_element(By.XPATH, self.ELEMENT["Recent_search10"]).text self.assertEqual("百度11", value1, "错误---%s" % goal) self.assertEqual("百度2", value2, "错误---%s" % goal) @getimage def test_CGS_SSZJY_0005(self): '''搜索中间页-最近搜索特殊字符''' log.info(self.test_CGS_SSZJY_0005.__doc__) goal = "搜索特殊字符查看最近搜索记录" self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.adb_send_input(By.ID, self.ELEMENT["middle_search_box"], "aabb", self.device) self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() value = self.new_find_element(By.XPATH, self.ELEMENT["Recent_search1"]).text self.assertEqual("aabb", value, "错误---%s" % goal) self.adb_send_input(By.ID, self.ELEMENT["middle_search_box"], "*@", self.device) self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() value = self.new_find_element(By.XPATH, self.ELEMENT["Recent_search1"]).text self.assertEqual("*@", value, "错误---%s" % goal) self.adb_send_input(By.ID, self.ELEMENT["middle_search_box"], "", self.device) value = self.new_find_element(By.XPATH, self.ELEMENT["Recent_search1"]).text self.assertEqual("*@", value, "错误---%s" % goal) toast_loc = '//*[contains(@text,"输入两个关键字")]' try: value = self.new_find_element(By.XPATH, toast_loc).text log.info('toast提示"%s"' % value) self.assertEqual("至少输入两个关键字", value, "错误————%s" % goal) except: log.error("没有获取到toast信息") @getimage def test_CGS_SSZJY_0006(self): '''搜索中间页-最近搜索相同关键词''' log.info(self.test_CGS_SSZJY_0006.__doc__) goal = "再次搜索相同关键词时查看最近搜索记录" companyname1 = "金堤" companyname2 = "网易" self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.adb_send_input(By.ID, self.ELEMENT["middle_search_box"], companyname1, self.device) self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() self.adb_send_input(By.ID, self.ELEMENT["middle_search_box"], companyname2, self.device) self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() self.adb_send_input(By.ID, self.ELEMENT["middle_search_box"], companyname1, self.device) self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() num = len(self.new_find_elements(By.XPATH, self.ELEMENT["Recent_search_result"])) value = self.new_find_elements(By.XPATH, self.ELEMENT["Recent_search_result"]) for ele in value: log.info(ele.text) log.info("所有的搜索记录%s条" % num) value1 = self.new_find_element(By.XPATH, self.ELEMENT["Recent_search1"]).text self.assertEqual(companyname1, value1, "错误---%s" % goal) self.new_find_element(By.ID, self.ELEMENT["search_history_delete"]).click() self.new_find_element(By.ID, self.ELEMENT["pop_up_sure"]).click() @getimage def test_CGS_SSZJY_0007(self): '''搜索中间页-最近浏览展示''' log.info(self.test_CGS_SSZJY_0007.__doc__) goal_01 = ["最近浏览-公司logo", "最近浏览-公司名称", "最近浏览-浏览标签"] status = self.is_login() if status == True: self.logout() self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() result = self.isElementExist(By.ID, self.ELEMENT["read_history_all"]) if result == False: self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys("百度") self.new_find_element(By.XPATH, self.ELEMENT["search_result_first"]).click() time.sleep(2) self.new_find_element(By.ID, self.ELEMENT["app_title_back"]).click() self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() test_01 = self.isElementExist(By.ID, self.ELEMENT["read_history_logo"]) self.assertTrue(test_01, "错误————%s" % goal_01[0]) submit_01 = self.new_find_element(By.ID, self.ELEMENT["read_history_name"]) test_02 = submit_01.text submit_02 = self.new_find_element(By.ID, self.ELEMENT["read_history_time"]) test_03 = submit_02.text self.assertEqual(test_02, "北京百度网讯科技有限公司", "错误————%s" % goal_01[1]) self.assertEqual(test_03, "今天浏览过", "错误————%s" % goal_01[2]) goal_02 = ["最近浏览-老板logo", "最近浏览-老板名称", "最近浏览-浏览标签"] self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys("李彦宏") self.new_find_elements(By.ID, self.ELEMENT["same_boss_first"])[0].click() self.new_find_element(By.ID, self.ELEMENT["app_title_back"]).click() self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() test_01 = self.isElementExist(By.ID, self.ELEMENT["read_history_logo"]) self.assertTrue(test_01, "错误————%s" % goal_02[0]) submit_01 = self.new_find_element(By.ID, self.ELEMENT["read_history_name"]) test_02 = submit_01.text submit_02 = self.new_find_element(By.ID, self.ELEMENT["read_history_time"]) test_03 = submit_02.text self.assertEqual(test_02, "李彦宏", "错误————%s" % goal_02[1]) self.assertEqual(test_03, "今天浏览过", "错误————%s" % goal_02[2]) goal_03 = "浏览相同公司只展示最新的浏览记录" self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys("百度") self.new_find_element(By.XPATH, self.ELEMENT["search_result_first"]).click() self.new_find_element(By.ID, self.ELEMENT["app_title_back"]).click() self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() submit_01 = self.new_find_element(By.ID, self.ELEMENT["read_history_name"]) test_01 = submit_01.text submit_02 = self.new_find_elements(By.ID, self.ELEMENT["read_history_name"])[1] test_02 = submit_02.text self.assertEqual(test_01, "北京百度网讯科技有限公司", "错误————%s" % goal_03) self.assertEqual(test_02, "李彦宏", "错误————%s" % goal_03) goal_04 = "点击浏览记录进入对应的企业详情页" self.new_find_element(By.ID, self.ELEMENT["read_history_name"]).click() submit = self.new_find_element(By.ID, self.ELEMENT["company_official_information"]) test = submit.text self.assertEqual(test, "官方信息", "错误————%s" % goal_04) goal_05 = "未登录点击人员浏览记录跳转登陆页" self.new_find_element(By.ID, self.ELEMENT["app_title_back"]).click() self.new_find_elements(By.ID, self.ELEMENT["read_history_name"])[1].click() submit = self.new_find_element(By.ID, self.ELEMENT["login_title"]) test = submit.text self.assertEqual(test, "短信验证码登录", "错误————%s" % goal_05) goal_07 = "最近浏览单条点击删除能删除此浏览记录" self.new_find_element(By.ID, self.ELEMENT["app_title_back"]).click() self.new_find_element(By.ID, self.ELEMENT["read_history_close"]).click() time.sleep(1) self.new_find_element(By.ID, self.ELEMENT["read_history_close"]).click() test = self.isElementExist(By.ID, self.ELEMENT["read_history_all"]) self.assertFalse(test, "错误————%s" % goal_07) else: self.new_find_element(By.ID, self.ELEMENT["read_history_delete"]).click() self.new_find_element(By.ID, self.ELEMENT["pop_up_sure"]).click() self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys("百度") self.new_find_element(By.XPATH, self.ELEMENT["search_result_first"]).click() self.new_find_element(By.ID, self.ELEMENT["app_title_back"]).click() self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() test_01 = self.isElementExist(By.ID, self.ELEMENT["read_history_logo"]) self.assertTrue(test_01, "错误————%s" % goal_01[0]) submit_01 = self.new_find_element(By.ID, self.ELEMENT["read_history_name"]) test_02 = submit_01.text submit_02 = self.new_find_element(By.ID, self.ELEMENT["read_history_time"]) test_03 = submit_02.text self.assertEqual(test_02, "北京百度网讯科技有限公司", "错误————%s" % goal_01[1]) self.assertEqual(test_03, "今天浏览过", "错误————%s" % goal_01[2]) goal_02 = ["最近浏览-老板logo", "最近浏览-老板名称", "最近浏览-浏览标签"] self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys("李彦宏") self.new_find_elements(By.ID, self.ELEMENT["same_boss_first"])[0].click() self.new_find_element(By.ID, self.ELEMENT["app_title_back"]).click() self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() test_01 = self.isElementExist(By.ID, self.ELEMENT["read_history_logo"]) self.assertTrue(test_01, "错误————%s" % goal_02[0]) submit_01 = self.new_find_element(By.ID, self.ELEMENT["read_history_name"]) test_02 = submit_01.text submit_02 = self.new_find_element(By.ID, self.ELEMENT["read_history_time"]) test_03 = submit_02.text self.assertEqual(test_02, "李彦宏", "错误————%s" % goal_02[1]) self.assertEqual(test_03, "今天浏览过", "错误————%s" % goal_02[2]) goal_03 = "浏览相同公司只展示最新的浏览记录" self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys("百度") self.new_find_element(By.XPATH, self.ELEMENT["search_result_first"]).click() self.new_find_element(By.ID, self.ELEMENT["app_title_back"]).click() self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() submit_01 = self.new_find_element(By.ID, self.ELEMENT["read_history_name"]) test_01 = submit_01.text submit_02 = self.new_find_elements(By.ID, self.ELEMENT["read_history_name"])[1] test_02 = submit_02.text self.assertEqual(test_01, "北京百度网讯科技有限公司", "错误————%s" % goal_03) self.assertEqual(test_02, "李彦宏", "错误————%s" % goal_03) goal_04 = "点击浏览记录进入对应的企业详情页" self.new_find_element(By.ID, self.ELEMENT["read_history_name"]).click() submit = self.new_find_element(By.ID, self.ELEMENT["company_official_information"]) test = submit.text self.assertEqual(test, "官方信息", "错误————%s" % goal_04) goal_05 = "未登录点击人员浏览记录跳转登陆页" self.new_find_element(By.ID, self.ELEMENT["app_title_back"]).click() self.new_find_elements(By.ID, self.ELEMENT["read_history_name"])[1].click() submit = self.new_find_element(By.ID, self.ELEMENT["login_title"]) test = submit.text self.assertEqual(test, "短信验证码登录", "错误————%s" % goal_05) goal_07 = "最近浏览单条点击删除能删除此浏览记录" self.new_find_element(By.ID, self.ELEMENT["app_title_back"]).click() self.new_find_element(By.ID, self.ELEMENT["read_history_close"]).click() time.sleep(1) self.new_find_element(By.ID, self.ELEMENT["read_history_close"]).click() test = self.isElementExist(By.ID, self.ELEMENT["read_history_all"]) self.assertFalse(test, "错误————%s" % goal_07) @getimage def test_CGS_SSZJY_0008(self): '''搜索中间页-最近浏览展示10条''' log.info(self.test_CGS_SSZJY_0006.__doc__) goal = "进入十一家公司详情页后查看最近浏览中倒序展示10条浏览记录" company_list = ["百度","京东","网易","爱奇艺","阿里巴巴","腾讯","拼多多","苏宁","天眼查","万达","华为"] self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() for i in range(len(company_list)): self.search_result(company_list[i], 0) self.new_find_element(By.ID, self.ELEMENT["app_title_back"]).click() self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() i += 1 test_01 = self.new_find_elements(By.XPATH, "//*[@resource-id='com.tianyancha.skyeye:id/tv_name']")[8].text test_02 = self.new_find_elements(By.XPATH, "//*[@resource-id='com.tianyancha.skyeye:id/tv_name']")[0].text self.assertEqual(test_01, "网易(杭州)网络有限公司", "错误————%s" % goal) self.assertEqual(test_02, "华为技术有限公司", "错误————%s" % goal)
class CompanyBottomTabAttention(MyTest): """ 公司底部TAB_关注 """ a = Read_Ex() ELEMENT = a.read_excel("company_bottom_tab") @classmethod def setUpClass(cls): super().setUpClass() cls.operation = Operation(cls.driver) cls.company = CompanyFunc(cls.driver, cls.ELEMENT) cls.account = Account() cls.user = cls.account.get_account() cls.company_name = '四川同辉实业有限公司' @classmethod def tearDownClass(cls): cls.account.release_account(cls.user) super().tearDownClass() @getimage def test_gfxx_tab_gz_0001(self): "未登录账号,点击「关注」,拉起登陆" log.info(self.test_gfxx_tab_gz_0001.__doc__) try: # 搜索公司 self.company.search_company(self.company_name, self.device) # 是否有问大家 self.company.ask_banner() collect_status = self.company.is_collect() log.info("关注状态:{}".format(collect_status)) if collect_status: # 取消 关注 self.company.click_collect() self.company.click_collect() # 判断是否调起登陆 login_text = self.operation.new_find_element( By.ID, self.ELEMENT['log_title']).text log.info("调起登陆文案:{}".format(login_text)) self.assertEqual(login_text, '短信验证码登录') except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_gfxx_tab_gz_0002(self): "登录账号,点击「关注」,弹出「选择分组」框" log.info(self.test_gfxx_tab_gz_0002.__doc__) try: login_status = self.operation.is_login() if not login_status: self.operation.login(phone_num=self.user, password=self.account.get_pwd()) # 搜索公司 self.company.search_company(self.company_name, self.device) # 是否有问大家 self.company.ask_banner() collect_status = self.company.is_collect() log.info("关注状态:{}".format(collect_status)) if collect_status: # 取消 关注 self.company.click_collect() self.company.click_collect() collect_title = self.operation.new_find_element( By.ID, self.ELEMENT['email_title']).text text = "选择分组" self.assertEqual( text, collect_title, '获取的title:「{}」与预期值「{}」 不一致'.format(collect_title, text)) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_gfxx_tab_gz_0003(self): "登录账号,点击「关注」,弹出「选择分组」框,选择「取消」,放弃关注操作" log.info(self.test_gfxx_tab_gz_0003.__doc__) try: login_status = self.operation.is_login() if not login_status: self.operation.login(phone_num=self.user, password=self.account.get_pwd()) # 搜索公司 self.company.search_company(self.company_name, self.device) # 是否有问大家 self.company.ask_banner() collect_status = self.company.is_collect() log.info("关注状态:{}".format(collect_status)) if collect_status: # 取消 关注 self.company.click_collect() self.company.click_collect(collect_status=True) # 再次检测关注状态 new_collect_status = self.company.is_collect() self.assertFalse(new_collect_status, "关注实际状态为:{}".format(new_collect_status)) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_gfxx_tab_gz_0004(self): "登录账号,点击「关注」,弹出「选择分组」框,点击「确认」,关注列表出现该公司" log.info(self.test_gfxx_tab_gz_0004.__doc__) try: login_status = self.operation.is_login() if not login_status: self.operation.login(phone_num=self.user, password=self.account.get_pwd()) # 搜索公司 self.company.search_company(self.company_name, self.device) # 是否有问大家 self.company.ask_banner() collect_status = self.company.is_collect() log.info("关注状态:{}".format(collect_status)) if collect_status: # 取消 关注 self.company.click_collect() self.company.click_collect(collect_status=True, click_status=True) # 进入 我的关注 self.company.entry_collect() # 获取 第一个公司的名字(默认刚关注的排第一个) collect_list_status = self.company.exists_monitor_list( self.company_name) self.assertTrue(collect_list_status, '关注列表未找到 {}'.format(self.company_name)) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_gfxx_tab_gz_0005(self): "登录账号,点击「关注」,弹出「选择分组」框,选择分组,点击「确定」" log.info(self.test_gfxx_tab_gz_0005.__doc__) try: login_status = self.operation.is_login() if not login_status: self.operation.login(phone_num=self.user, password=self.account.get_pwd()) # 搜索公司 self.company.search_company(self.company_name, self.device) log.info( time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))) # 是否有问大家 self.company.ask_banner() log.info( time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))) collect_status = self.company.is_collect() log.info("关注状态:{}".format(collect_status)) if collect_status: # 取消 关注 self.company.click_collect() self.company.click_collect() # 选择分组框 groups = self.operation.new_find_elements( By.XPATH, self.ELEMENT['collect_group']) rand = randint(1, len(groups)) group = self.operation.new_find_element( By.XPATH, self.ELEMENT['collect_group'] + "[{}]/android.widget.TextView".format(rand)) # 获取分组名 group_name = group.text group.click() # 点击确定 self.operation.new_find_element( By.ID, self.ELEMENT['email_neg_pos']).click() toast = self.company.operation.get_toast() text = "关注成功" self.assertEqual(text, toast, '获取的toast:「{}」与预期值「{}」 不一致'.format(toast, text)) # 进入 我的-我的关注 self.company.entry_collect() # 进入我的分组 self.operation.new_find_element(By.ID, self.ELEMENT['my_group']).click() # 判断分组是否存在 status = self.company.is_group(group_name) self.assertTrue(status, "关注公司 {} 不在分组中".format(self.company_name)) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e
class TestSearchDisHonest3(MyTest): "查老赖_03" a = Read_Ex() ELEMENT = a.read_excel("search_dishonest") @classmethod def setUpClass(cls): super().setUpClass() cls.dishone = Dishonest(cls.driver, cls.ELEMENT) cls.operation = Operation(cls.driver) def setUp(self): self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_in_main"] ).click() @getimage def test_sssx_0005_01_0(self): "「失信自然人」可以通过「地域」+「性别」复合筛选" log.info(self.test_sssx_0005_01_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input( By.ID, self.ELEMENT["dishonest_mid_input"], "李星雨", self.device ) self.dishone.search_city("安徽省", "安徽省全省") self.dishone.search_sex("女") car_id = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_card_id"].format(2) ).text city_info = card_operation().check_region(car_id) sex_info = card_operation().check_sex(car_id) self.assertIn("安徽省", city_info, "所属区域不符合筛选条件") self.assertEqual("女", sex_info, "出生年月不正确") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_sssx_0006_01_0(self): "「失信自然人」可以通过「性别」+「出生年份」复合筛选" log.info(self.test_sssx_0006_01_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input( By.ID, self.ELEMENT["dishonest_mid_input"], "李星竹", self.device ) self.dishone.search_year("1998年", 0.6, 0.5) self.dishone.search_sex("女") car_id = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_card_id"].format(2) ).text self.assertIn("1998", car_id, "出生年月不正确") sex = card_operation().check_sex(car_id) self.assertEqual("女", sex, "性别不符合筛选结果") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_sssx_0007_01_0(self): "「失信自然人」可以通过「地域」+「出生年份」+「性别」复合筛选" log.info(self.test_sssx_0007_01_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input( By.ID, self.ELEMENT["dishonest_mid_input"], "李子微", self.device ) self.dishone.search_city("河北省", "邯郸市") self.dishone.search_year("1998年", 0.6, 0.5) self.dishone.search_sex("女") car_id = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_card_id"].format(2) ).text city_info = card_operation().check_region(car_id) self.assertIn("邯郸市", city_info, "所属区域不符合筛选条件") self.assertIn("1998", car_id, "出生年月不正确") sex = card_operation().check_sex(car_id) self.assertEqual("女", sex, "性别不符合筛选结果") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_sssx_0008_01_0(self): "性别+年龄复合筛选,自然人筛选无结果" log.info(self.test_sssx_0008_01_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input( By.ID, self.ELEMENT["dishonest_mid_input"], "马芸芸", self.device ) self.dishone.search_year("1998年", 0.6, 0.5) # 查询年龄 self.dishone.search_sex("男") # 查询性别 people_text = self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_people_null"] ).text self.assertEqual(people_text, "抱歉,没有找到相关失信自然人", "有搜索结果") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_sssx_0009_01_0(self): "「失信企业」可以通过地域进行筛选" log.info(self.test_sssx_0009_01_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input( By.ID, self.ELEMENT["dishonest_mid_input"], "马云", self.device ) self.dishone.broken_faith_enterprise().click() # 进入到 失信企业 列表 self.dishone.search_city("山西省", "山西省全省") company_name = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_name"].format(2) ).text # 获取公司名字 flag = "大同市" in company_name if not flag: self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_details"].format(2) ).click() # 点击企业法人,进入失信详情页 self.operation.new_find_element( By.ID, self.ELEMENT["company_name"] ).click() # 点击进入公司详情页 if self.operation.isElementExist( By.ID, "com.tianyancha.skyeye:id/btn" ): # 判断是否第一次进入 self.operation.new_find_element( By.ID, "com.tianyancha.skyeye:id/btn" ).click() self.operation.swipeUp(0.4, 0.7, 0.3) # 滑动页面,找到工商信息 self.operation.new_find_element( By.ID, self.ELEMENT["company_business_info"] ).click() # 进入工商信息 self.operation.swipeUp(0.4, 0.7, 0.3) # 滑动页面,找到等级机关 reg_info = self.operation.new_find_element( By.ID, self.ELEMENT["company_registrar"] ).text # 获取登记机关信息 self.assertIn("山西省", reg_info, "区域不符合筛选结果") else: self.assertTrue(flag, "区域不符合筛选结果") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_sxjl_0001_01_0(self): "「失信记录列表页」的「返回」正常" log.info(self.test_sxjl_0001_01_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input( By.ID, self.ELEMENT["dishonest_mid_input"], "司马宏", self.device ) old_people_name = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_name"].format(2) ).text self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_card_id"].format(2) ).click() # 进入到详情页 self.operation.new_find_element(By.ID, self.ELEMENT["list_back"]).click() new_people_name = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_name"].format(2) ).text self.assertEqual(old_people_name, new_people_name, "返回搜搜页不正确") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_sxjl_0001_02_0(self): "「失信记录列表页」的「分享」正常" log.info(self.test_sxjl_0001_02_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input( By.ID, self.ELEMENT["dishonest_mid_input"], "司马宏", self.device ) self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_card_id"].format(2) ).click() # 进入到详情页 self.operation.new_find_element( By.XPATH, self.ELEMENT["list_share"] ).click() # 点击分享 wechat_friends = self.operation.isElementExist( By.ID, self.ELEMENT["wechat_friends"] ) self.assertTrue(wechat_friends, "分享功能未打开") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_sxjl_0001_03_0(self): "「失信记录列表页」的「存长图」正常" log.info(self.test_sxjl_0001_03_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input( By.ID, self.ELEMENT["dishonest_mid_input"], "司马宏", self.device ) self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_card_id"].format(2) ).click() # 进入到详情页 self.operation.new_find_element( By.XPATH, self.ELEMENT["list_longpic"] ).click() # 点击存长图 wechat_friends = self.operation.isElementExist( By.ID, self.ELEMENT["save_btn"] ) self.assertTrue(wechat_friends, "存长图功能不正确") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @unittest.skip("无法获取到toast") @getimage def test_sxjl_0001_04_0(self): "「失信记录列表页」的「上滑加载」功能" log.info(self.test_sxjl_0001_04_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input( By.ID, self.ELEMENT["dishonest_mid_input"], "司马宏", self.device ) self.dishone.broken_faith_enterprise().click() # 进入到 失信企业 列表 self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_card_id"].format(2) ).click() # 进入到详情页 self.operation.swipeUp(0.3, 0.7, 0.3) text = "无数据" toast = self.operation.new_find_element( By.XPATH, ".//*[contains(@text,'{}')]".format(text) ).text self.assertEqual(toast.text, text, "toast不正确") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_sxxq_0001_01_0(self): "「失信详情」根据案号关联正确" log.info(self.test_sxxq_0001_01_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input( By.ID, self.ELEMENT["dishonest_mid_input"], "吴俊良", self.device ) self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_card_id"].format(2) ).click() # 进入到详情页 case_id = self.operation.new_find_element( By.XPATH, self.ELEMENT["company_case_name"].format(1) ).text # 获取案号 self.operation.new_find_element( By.XPATH, self.ELEMENT["company_case_name"].format(1) ).click() # 进入失信详情 details_case_id = self.operation.new_find_element( By.ID, "com.tianyancha.skyeye:id/dishonest_detail_gistid_tv" ).text self.assertEqual(case_id, details_case_id, "根据案号进入失信详情错误") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception
class TestSearchDisHonest1(MyTest): "查老赖_01" a = Read_Ex() ELEMENT = a.read_excel("search_dishonest") @classmethod def setUpClass(cls): super().setUpClass() cls.dishone = Dishonest(cls.driver, cls.ELEMENT) cls.operation = Operation(cls.driver) cls.company = CompanyFunc(cls.driver, cls.ELEMENT) def setUp(self): self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_in_main"]).click() @getimage @unittest.skip("首页只有开工红包banner") def test_cll_rk_0001_1(self): "通过点击APP首页轮播banner「查老赖」图片,可以跳转到查老赖功能页面" log.info(self.test_cll_rk_0002_1.__doc__) try: back_to_index(self.driver) self.dishone.entrance() search_input = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_search_input"]) assert "输入人名/公司名/身份证号码/组织机构代码" == search_input.text except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_cll_rk_0002_1(self): "通过点击「百宝箱」中的「查老赖」标签,可以跳转到「查老赖」功能页面" log.info(self.test_cll_rk_0002_1.__doc__) try: back_to_index(self.driver) self.operation.new_find_elements( By.ID, self.ELEMENT["all_in_main"])[4].click() self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_in_all"]).click() search_input = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_search_input"]) assert "输入人名/公司名/身份证号码/组织机构代码" == search_input.text except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_cll_rmss_0001_0(self): "「查老赖」功能首页,搜索框下展示热门搜索公司/热门人员展示2家热门搜索公司; 展示2个热门搜索人员" log.info(self.test_cll_rmss_0001_0.__doc__) try: hot_words = self.operation.new_find_elements( By.ID, self.ELEMENT["dishonest_hot_words"]) company_sum = 0 human_sum = 0 for idx, word in enumerate(hot_words): print("热搜词:%d,%s" % (idx, word.text)) if len(word.text) > 5: company_sum += 1 else: human_sum += 1 assert company_sum == 2 assert human_sum == 2 except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_cll_rmss_0002_0(self): "「查老赖」搜索中间页,在没有搜索记录的时候,显示「热门搜索」" log.info(self.test_cll_rmss_0002_0.__doc__) try: search_input = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_search_input"]) assert "输入人名/公司名/身份证号码/组织机构代码" == search_input.text search_input.click() res = self.operation.isElementExist( By.ID, self.ELEMENT["dishonest_del_history"]) if res: self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_del_history"]).click() res = self.operation.isElementExist( By.ID, self.ELEMENT["dishonest_del_confirm"]) # 如果「删除最近搜索按钮」存在: if res: # 判断「热门搜索」不存在 res = self.operation.isElementExist( By.ID, self.ELEMENT["dishonest_mid_hot_scope"]) assert not res # 清空「最近搜索记录」 confirm_text = self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_del_text"]).text print("confirm_text debug%s" % confirm_text) assert "确定要清空搜索记录?" == confirm_text self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_del_submit"]).click() # 判断「删除最近搜索按钮」不存在 res = self.operation.isElementExist( By.ID, self.ELEMENT["dishonest_del_history"]) assert not res # 判断「热门搜索」存在 res = self.operation.isElementExist( By.ID, self.ELEMENT["dishonest_mid_hot_scope"]) assert res except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_cll_rmss_0003_0(self): "「查老赖」搜索中间页,在有搜索记录的时候,不显示「热门搜索」" log.info(self.test_cll_rmss_0003_0.__doc__) try: search_input = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_search_input"]) assert "输入人名/公司名/身份证号码/组织机构代码" == search_input.text search_input.click() self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "暴风", self.device) # 返回中间页 self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_mid_clean_iv"]).click() time.sleep(1) res = self.operation.isElementExist( By.ID, self.ELEMENT["dishonest_del_history"]) if res: # 判断「热门搜索」不存在 res = self.operation.isElementExist( By.ID, self.ELEMENT["dishonest_mid_hot_scope"]) assert not res except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_cll_rmss_0004_0(self): "「查老赖」首页的「热门搜索」词可点击,直接进入「失信记录列表」页面" log.info(self.test_cll_rmss_0004_0.__doc__) try: hot_element = self.operation.new_find_elements( By.ID, self.ELEMENT["dishonest_hot_words"])[0] hot_word = hot_element.text hot_element.click() list_title = self.operation.new_find_element( By.ID, self.ELEMENT["list_title"]).text assert "失信记录列表" == list_title list_name = self.operation.new_find_element( By.ID, self.ELEMENT["list_name"]).text assert hot_word == list_name assert self.operation.isElementExist(By.ID, self.ELEMENT["list_back"]) assert self.operation.isElementExist(By.XPATH, self.ELEMENT["list_longpic"]) assert self.operation.isElementExist(By.XPATH, self.ELEMENT["list_share"]) except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_cll_rmss_0005_0(self): "「搜索中间页」的「热门搜索」词可点击,直接进入「失信记录列表」页面" log.info(self.test_cll_rmss_0005_0.__doc__) try: self.dishone.clean_search_history() # 清除查老赖搜索历史 self.dishone.into_dishonest_mid() # 进入查老赖中间页 hotword_name = self.dishone.click_hotword_in_mid(idx=1) # 点击第1个热搜词 title_text = self.operation.new_find_element( By.ID, self.ELEMENT["list_title"]).text # 获取页面title self.assertEqual(title_text, "失信记录列表", "title错误") list_name = self.operation.new_find_element( By.ID, self.ELEMENT["list_name"]).text # 获取详情页的老赖名字 self.assertEqual(hotword_name, list_name, "错误的老赖详情页") self.operation.new_find_element( By.ID, self.ELEMENT["list_back"]).click() # 点击返回按钮,回到搜索中间页 print("返回") hotsearch_name = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_hot_search"]).text self.assertEqual(hotsearch_name, "热门搜索", "当前页为有搜索记录") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0001_01_0(self): "通过人名搜索老赖,搜索汉字最少字符:2" log.info(self.test_ss_0001_01_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "马", self.device) text = "至少输入2个字" toast = self.operation.get_toast() self.assertEqual(toast, text, "toast不正确") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0001_02_0(self): "校验count数与列表数是否一致" log.info(self.test_ss_0001_02_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "司马朝", self.device) count_number = self.operation.count_num(By.ID, self.ELEMENT["count_num"]) list_number = self.operation.new_find_elements( By.XPATH, self.ELEMENT["list_ico"]) self.assertEqual(count_number, len(list_number) - 1, "count数与列表数不一致") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0001_03_0(self): "所有iterm是否带有老赖标志" log.info(self.test_ss_0001_03_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "司马朝", self.device) for i in range(2, 4): join_element = "{}[{}]//*{}".format( self.ELEMENT["list_ico"], i, self.ELEMENT["list_deadbeat"]) text_value = self.operation.new_find_element( By.XPATH, join_element) self.assertEqual(text_value.text, "老赖", "标志不为老赖") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0001_04_0(self): "第一条是否为全量匹配结果" log.info(self.test_ss_0001_04_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "司马朝", self.device) text_value = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_name"].format(2)) self.assertEqual(text_value.text, "司马朝", "第一条不为司马朝") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0001_05_0(self): "校验count数大于999,是否显示为999+" log.info(self.test_ss_0001_05_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "王伟", self.device) count_number = self.operation.count_num( By.ID, self.ELEMENT["count_num"]) # 获取count数 self.assertTrue(count_number > 999, "列表数小于999") tab_text = self.operation.new_find_element( By.XPATH, self.ELEMENT["tab_person_count"]).text tab_num = tab_text[-4:] self.assertEqual(tab_num, "999+", "count数显示错误") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0001_06_0(self): "身份证号码月日加密显示" log.info(self.test_ss_0001_06_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "司马朝", self.device) text_value = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_card_id"].format(2)).text self.assertEqual(text_value, "3211811991****3234", "身份证信息不符合") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0001_07_0(self): "「失信自然人」tab处,显示「搜索到3个老赖」" log.info(self.test_ss_0001_07_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "司马朝", self.device) text_value = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_tab_name"]).text self.assertEqual(text_value, "搜索到 3 个老赖", "搜索条数不符") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0002_01_0(self): "「失信企业」tab后数字与列表count数一致" log.info(self.test_ss_0002_01_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "司马朝", self.device) self.dishone.broken_faith_enterprise().click() # 进入到 失信企业 列表 enterprise_num = self.operation.count_num( By.XPATH, self.ELEMENT["broken_faith_enterprise_tab"]) # 获取失信企业tab的搜索数 list_number = self.operation.new_find_elements( By.XPATH, self.ELEMENT["list_ico"]) self.assertEqual(enterprise_num, len(list_number) - 1, "count数与列表数不一致") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0002_02_0(self): "「失信企业」搜索结果包含搜索词" log.info(self.test_ss_0002_02_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "司马朝", self.device) self.dishone.broken_faith_enterprise().click() # 进入到 失信企业 列表 list_number = self.operation.new_find_elements( By.XPATH, self.ELEMENT["list_ico"]) for i in range(2, len(list_number)): name = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_name"].format(i)).text include_key = "".join(set("司马朝") & set(name)) # 获取交集 self.assertIsNotNone(include_key, "搜索结果不包含关键字") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0002_03_0(self): "「失信企业」搜索结果iterm 都含有老赖标签" log.info(self.test_ss_0002_03_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "司马朝", self.device) self.dishone.broken_faith_enterprise().click() # 进入到 失信企业 列表 list_number = self.operation.new_find_elements( By.XPATH, self.ELEMENT["list_ico"]) for i in range(2, len(list_number)): join_element = "{}[{}]//*{}".format( self.ELEMENT["list_ico"], i, self.ELEMENT["list_deadbeat"]) text_value = self.operation.new_find_element( By.XPATH, join_element) self.assertEqual(text_value.text, "老赖", "标志不为老赖") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0002_04_0(self): "「失信企业」未登录,点击人名,调起登录页" log.info(self.test_ss_0002_04_0.__doc__) try: time.sleep(1) self.driver.keyevent(4) if self.operation.is_login(): self.operation.logout() self.setUp() # 进入老赖首页 self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "司马朝", self.device) self.dishone.broken_faith_enterprise().click() # 进入到 失信企业 列表 self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_legal_person"].format( 2, 1, 2)).click() # 点击企业法人,进入失信详情页 one_click_login = self.operation.isElementExist( By.ID, self.ELEMENT["one_click"]) get_code_login = self.operation.isElementExist( By.ID, self.ELEMENT["login_code"], outtime=2) flag = False if one_click_login or get_code_login: flag = True self.assertTrue(flag, "已经是登陆状态") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0002_05_0(self): "「失信企业」进入详情页,信息与跳转前一致" log.info(self.test_ss_0002_05_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "司马朝", self.device) self.dishone.broken_faith_enterprise().click() # 进入到 失信企业 列表 # 企业名 company_name = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_name"].format(2)).text # 获取法人 legal_person = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_legal_person"].format(2, 1, 2)).text # 进入失信记录列表页 self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_lists"].format(2)).click() # 进入失信详情页 self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_details"].format(1)).click() details_company_name = self.operation.new_find_element( By.ID, "com.tianyancha.skyeye:id/tv_name").text details_legal_person = self.operation.new_find_element( By.ID, "com.tianyancha.skyeye:id/tv_detail_legal_content").text self.assertEqual(company_name, details_company_name, "公司名称不一致") self.assertEqual(legal_person, details_legal_person, "法人名称不一致") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0003_01_0(self): "输入身份证号,匹配到搜索结果" log.info(self.test_ss_0003_01_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "1310821950", self.device) card_id = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_card_id"].format(2)).text self.assertIn("1310821950", card_id, "身份证不匹配") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0003_02_0(self): "输入身份证号,少于6位,不能进行搜索" log.info(self.test_ss_0003_02_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "13108", self.device) text = "至少输入6位证件号" toast = self.operation.get_toast() self.assertEqual(toast, text, "toast不正确") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0003_03_0(self): "身份证号搜索,校验count数大于999,是否显示为999+" log.info(self.test_ss_0003_03_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "130984", self.device) count_number = self.operation.count_num( By.ID, self.ELEMENT["count_num"]) # 获取count数 self.assertTrue(count_number > 999, "列表数小于999") tab_text = self.operation.new_find_element( By.XPATH, self.ELEMENT["tab_person_count"]).text tab_num = tab_text[-4:] self.assertEqual(tab_num, "999+", "count数显示错误") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0004_01_0(self): "组织机构代码搜索,「失信自然人」没有匹配结果" log.info(self.test_ss_0004_01_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "798532048", self.device) people_text = self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_people_null"]).text self.assertEqual(people_text, "抱歉,没有找到相关失信自然人", "有搜索结果") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception def test_ss_0004_02_0(self): "组织机构代码搜索,输入:798532048,「失信企业」匹配到结果" log.info(self.test_ss_0004_02_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "798532048", self.device) self.dishone.broken_faith_enterprise().click() # 进入到 失信企业 列表 # 获取组织机构代码 code_id = self.operation.new_find_element( By.XPATH, self.ELEMENT["dishonest_legal_person"].format(2, 4, 2)).text self.assertEqual(code_id, "798532048", "组织机构代码不一致") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0004_03_0(self): "组织机构代码搜索,输入:<>,「失信自然人」「失信企业」无匹配结果" log.info(self.test_ss_0004_03_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "<>", self.device) people_text = self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_people_null"]).text self.assertEqual(people_text, "抱歉,没有找到相关失信自然人", "有搜索结果") self.dishone.broken_faith_enterprise().click() # 进入到 失信企业 列表 people_text = self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_people_null"]).text self.assertEqual(people_text, "抱歉,没有找到相关失信企业", "有搜索结果") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0004_04_0(self): "取消搜索,返回到查老赖首页页" log.info(self.test_ss_0004_04_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_mid_cancel"]).click() index_text = self.operation.new_find_element( By.ID, self.ELEMENT["index_title1"]).text self.assertEqual(index_text, "什么是“老赖”?", "没有返回到查老赖首页") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0005_01_0(self): "不输入时搜索框内,不显示一键清除" log.info(self.test_ss_0005_01_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 flag = self.operation.isElementExist( By.ID, self.ELEMENT["dishonest_mid_clean_iv"]) self.assertFalse(flag, "一键清除按钮存在") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0005_02_0(self): "输入时搜索框内,显示一键清除" log.info(self.test_ss_0005_02_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "123", self.device, key_value=8) flag = self.operation.isElementExist( By.ID, self.ELEMENT["dishonest_mid_clean_iv"]) self.assertTrue(flag, "一键清除按钮不存在") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0005_03_0(self): "「搜索框」输入内容被清除,恢复默认文案" log.info(self.test_ss_0005_03_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], "123", self.device, key_value=8) self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_mid_clean_iv"]).click() search_txt = self.operation.new_find_element( By.ID, self.ELEMENT["dishonest_mid_input"]).text self.assertEqual(search_txt, "输入人名/公司名/身份证号码/组织机构代码", "没有恢复默认文案") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_ss_0005_04_0(self): "不输入搜索词,点击搜索" log.info(self.test_ss_0005_04_0.__doc__) try: self.dishone.into_dishonest_mid().click() # 进入查老赖中间页 self.operation.adb_send_input(By.ID, self.ELEMENT["dishonest_mid_input"], " ", self.device) text = "你还没有输入关键词" toast = self.operation.get_toast() self.assertEqual(toast, text, "toast不正确") except AssertionError as ae: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception
class Search_company_sift_vip(MyTest, Operation): """查公司_高级筛选_02""" a = Read_Ex() ELEMENT = a.read_excel("test_search_company_sift") account = Account() phone_vip = account.get_account("vip") @classmethod def setUpClass(cls): super().setUpClass() cls.sift_opera = SiftOperation(cls.driver, cls.ELEMENT) cls.sift_opera.login_vip(cls.phone_vip, cls.account.get_pwd()) @classmethod def tearDownClass(cls): cls.account.release_account(cls.phone_vip, 'vip') super().tearDownClass() def get_company_sjhm(self, selectText, selectTarget, index=None): """ 获取公司:手机号码并断言 :param selectText: 更多筛选-筛选项 :param selectTarget: 选中条件 :param index: 选中项索引 """ phone_list = [] tempNum = 0 result = None company_name = self.sift_opera.click2company(selectText, selectTarget) if not self.isElementExist(By.ID, self.ELEMENT['tv_base_info_phone']): # 无手机号码/无联系电话,不展示基本信息「电话按钮」 # tag = str(index) is "2" # self.assertTrue(tag, "===「无手机/联系号码」断言失败-公司基本信息「有」手机/联系号码===") result = index == 2 else: phone_tag = self.driver.find_element_by_id(self.ELEMENT["tv_base_info_phone"]).get_attribute("enabled") if "true" == phone_tag: self.driver.find_element_by_id(self.ELEMENT["tv_base_info_phone"]).click() phones = self.new_find_elements(By.XPATH, self.ELEMENT["ll_msg"]) for i in range(len(phones)): phone_xpath = "{}[{}]{}".format(self.ELEMENT["ll_msg"], str(i + 1), '//*[@resource-id="com.tianyancha.skyeye:id/tv_phn"]') phone_list.append(self.new_find_element(By.XPATH, phone_xpath).text) log.info(phone_list) for i in range(len(phone_list)): if not re.match(r"^1[35678]\d{9}$", phone_list[i]): tempNum += 1 if index == 1: phone_tag = len(phone_list) != tempNum # self.assertTrue(phone_tag, "===「有手机号码」断言失败-号码列表中「无」手机号码===") result = phone_tag else: if self.isElementExist(By.ID, "com.tianyancha.skyeye:id/tv_score_tip"): tag = self.new_find_element(By.ID, "com.tianyancha.skyeye:id/tv_score_tip").text if "认证" in tag: phone_tag = len(phone_list) == tempNum # self.assertTrue(phone_tag, "===「无手机号码」断言失败-号码列表中「有」手机号码===") result = phone_tag elif "年审" in tag: if len(phone_list) == tempNum: # log.info("===该企业处在「认证待年审状态」,【无】手机/联系电话===") result = "===该企业:「{}」处在「认证待年审状态」,【无】手机/联系电话===".format(company_name) else: # log.info("===该企业处在「认证待年审状态」,【有】手机/联系电话===") result = "===该企业:「{}」处在「认证待年审状态」,【有】手机/联系电话===".format(company_name) else: result = "非「认证」「年审」企业:{}".format(company_name) else: if len(phone_list) == tempNum: # log.info("===该企业处在「已认证状态」,【无】手机/联系电话===") result = "===该企业:「{}」处在「已认证状态」,【无】手机/联系电话===".format(company_name) else: # log.info("===该企业处在「已认证状态」,【有】手机/联系电话===") result = "===该企业:「{}」处在「已认证状态」,【有】手机/联系电话===".format(company_name) self.new_find_element(By.ID, "com.tianyancha.skyeye:id/iv_close").click() else: if index == 1: # self.assertTrue(False, "===「有手机号码」断言失败-公司基本信息「无」手机号码===") result = False else: result = True self.sift_opera.back2company_search() self.sift_opera.reset(selectTarget) return result @getimage def test_001_cgs_gjsx_sjhm_p0(self): """查公司-搜索中间页,高级筛选:手机号码""" log.info(self.test_001_cgs_gjsx_sjhm_p0.__doc__) try: self.sift_opera.search_key(1) num_sjhm = random.randint(1, 2) selectTarget, selectText = self.sift_opera.get_key("more_sjhm_title", "more_sjhm", num_sjhm) result = self.get_company_sjhm(selectText, selectTarget, num_sjhm) log.info("===result===") if isinstance(result, type("返回值类型为str")): log.info(result) else: self.assertTrue(result, "===「有手机号码」断言失败-公司基本信息「无」手机号码===") except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_002_cgs_gjsx_zlxx_p0(self): """查公司-搜索中间页,高级筛选:专利信息""" log.info(self.test_002_cgs_gjsx_zlxx_p0.__doc__) try: self.sift_opera.search_key(1) num_zlxx = random.randint(1, 2) selectTarget, selectText = self.sift_opera.get_key("more_zlxx_title", "more_zlxx", num_zlxx) result = self.sift_opera.detail4company(selectText, "专利信息", selectTarget, num_zlxx) if num_zlxx == 1: # 断言-有专利信息 self.assertTrue(result, "===失败-高级筛选:「{}」错误===".format(selectText)) else: # 断言-无专利信息 self.assertFalse(result, "===失败-高级筛选:「{}」错误===".format(selectText)) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception
class AllServer6(MyTest, Operation): """金刚区_06""" a = Read_Ex() ELEMENT = a.read_excel("All_server") def in_allserver(self, value, size=1): """ 金刚区 全部服务进入对应的入口 value: 模块名称 example: cll(查老赖) """ self.value = value self.new_find_elements(By.ID, self.ELEMENT["king_area"])[4].click() if size is 1: pass else: self.swipeUp() self.new_find_element(By.XPATH, self.ELEMENT[self.value]).click() def search_input(self, value): """ 输入关键字搜索 """ self.new_find_element(By.ID, self.ELEMENT["search_input"]).send_keys(value) self.new_find_element(By.ID, self.ELEMENT["search_icon"]).click() time.sleep(0.5) search_value = self.new_find_element(By.ID, self.ELEMENT["search_input"]).text return search_value def hot_search(self): """ 随机点击热门搜索 """ nums = self.new_find_elements(By.XPATH, self.ELEMENT["hot_search"]) num = random.choice(nums) hot_search = num.text log.info("热门搜索:{}".format(hot_search)) num.click() time.sleep(1) return hot_search def search_clean(self): """ 搜索框一X """ self.new_find_element(By.ID, self.ELEMENT["search_input"]).click() self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() def search_recent_clear(self, default=1): """ 一键清除 最近搜索-清空icon """ self.new_find_element(By.ID, self.ELEMENT["search_recent_clear"]).click() if default == 1: self.new_find_element(By.ID, self.ELEMENT["confirm"]).click() else: self.new_find_element(By.ID, self.ELEMENT["cancel"]).click() def jump_bounced(self, ele_key="first_btn"): """ 跳过弹框 默认:'我知道了' """ loc = (By.ID, self.ELEMENT[ele_key]) try: e = WebDriverWait(self.driver, 1, 0.5).until(EC.presence_of_element_located(loc)) e.click() except Exception as e: print(e, "没有首次弹框") pass def is_toast_exist(self, text, timeout=1, poll_frequency=0.5): """is toast exist, return True or False - text - 页面上看到的文本内容 - timeout - 最大超时时间,默认1s - poll_frequency - 间隔查询时间,默认0.5s查询一次 is_toast_exist( "看到的内容") """ try: toast_loc = ("xpath", ".//*[contains(@text,'%s')]" % text) WebDriverWait(self.driver, timeout, poll_frequency).until( EC.presence_of_element_located(toast_loc)) return True except Exception as e: print(e, "未捕获toast提示") return False def hit_login(self, account="18535081116", password="******"): """ 点击操作正好遇到需要登录的时候使用 :param account: 账号 :param password: 密码 """ try: loc = ( By.XPATH, '//*[@class="android.widget.TextView" and @text="短信验证码登录"]', ) login = self.isElementExist(*loc) if login: self.new_find_element( By.XPATH, "//*[@class='android.widget.TextView' and @text='密码登录']" ).click() self.new_find_element( By.XPATH, "//*[@class='android.widget.EditText' and @text='输入手机号']" ).send_keys(account) self.new_find_element( By.XPATH, "//*[@class='android.widget.EditText' and @text='输入密码']" ).send_keys(password) # 点击勾选协议 self.new_find_element( By.ID, "com.tianyancha.skyeye:id/cb_login_check").click() self.new_find_element( By.ID, "com.tianyancha.skyeye:id/tv_login").click() else: pass except Exception as e: print(e, "用户已登录") pass @getimage def test_022_qbfu_ktgg_p0(self): """ 功能正常使用 1、热门搜索 2、输入搜索—有结果 3、输入搜搜索-无结果 4、最近搜素 5、一键清除 6、搜索有结果点击查看详情 """ try: self.in_allserver("ktgg", 2) a = self.new_find_element(By.ID, self.ELEMENT["search_input"]).text self.assertEqual(a, "请输入企业名称", msg="输入框提示信息不正确") # 随机点击热搜公司 b = self.hot_search() log.info("点击热搜公司:{}".format(b)) time.sleep(0.5) c = self.isElementExist(By.ID, self.ELEMENT["search_title"]) self.assertTrue(c, msg="结果页没有数据") d = self.new_find_elements( By.XPATH, self.ELEMENT["taxrate_id"])[0].text # 案号: d1 = self.new_find_elements( By.XPATH, self.ELEMENT["court_time_bs"])[0].text # 开庭时间: self.assertEqual(d, "案号:") self.assertEqual(d1, "开庭日期:") # 点击搜索结果item a = self.new_find_elements(By.ID, self.ELEMENT["zgxgqy_clist"])[0].text log.info("搜索结果列表页—案由:{}".format(a)) case_no = self.new_find_elements(By.ID, self.ELEMENT['text2'])[0].text log.info("搜索结果列表页-案号:{}".format(case_no)) self.new_find_elements(By.ID, self.ELEMENT["zgxgqy_clist"])[0].click() b = self.new_find_element(By.ID, self.ELEMENT["page_title"]).text a1 = self.new_find_element(By.ID, self.ELEMENT["ann_case_reason"]).text log.info("开庭公告详情页-案由:{}".format(a1)) case_no1 = self.new_find_element(By.ID, self.ELEMENT['ann_case_num']).text log.info("开庭公告详情页-案号:{}".format(case_no1)) self.assertEqual(b, "开庭公告详情", msg="页面title不一致") self.assertEqual(case_no1, case_no, msg="开庭公告详情页,开庭公告结果页 「案号」不对应") # 开庭公告详情页点击公司跳转 cnameL = self.new_find_elements(By.ID, self.ELEMENT["court_item"]) cname = random.choice(cnameL) a = cname.text print(a) if len(a) < 5: self.driver.keyevent(4) else: log.info("点击详情页公司:{}".format(a)) cname.click() time.sleep(2) self.jump_bounced() a1 = self.new_find_element(By.ID, self.ELEMENT["company1"]).text self.assertEqual(a1, a, msg="开庭公告详情页:{} VV公司详情页:{}, 公司名称不对应".format( a, b)) self.driver.keyevent(4) self.driver.keyevent(4) # 输入搜索无结果-随便你好 self.search_clean() self.search_input("随便你好") e = self.is_toast_exist("无数据") # self.assertTrue(e, msg='toast提示未捕获') f = self.isElementExist(By.ID, self.ELEMENT["search_title"]) self.assertFalse(f, msg="标识存在的话是有结果") # 输入搜索—有结果 宋庆龄 self.search_clean() self.search_input("宋庆龄") c1 = self.isElementExist(By.ID, self.ELEMENT["search_title"]) self.assertTrue(c1, msg="应该有结果,展示无结果") self.search_clean() # 一键清除 self.search_recent_clear(2) f = self.isElementExist(By.ID, self.ELEMENT["search_recent_clear"]) self.assertTrue(f, msg="一键清除-取消,最近搜索按钮还存在") self.search_recent_clear() g = self.isElementExist(By.ID, self.ELEMENT["search_recent_clear"]) self.assertFalse(g, msg="一键清除-确认,最近搜索按钮不存在") h = self.isElementExist(By.XPATH, self.ELEMENT["hotsearch_bs"]) self.assertTrue(h, msg="一键清除不存在,「热门搜素」存在") # 最近搜索记录 10 name_list = [ "马云", "孙凯", "王四会", "马丁", "韩磊", "李明", "向小叶", "蓝小凯", "李晓凯", "朱小凯", "赵小凯", "陈小凯", ] for name in name_list: log.info("输入搜索词:{}".format(name)) self.search_input(name) self.search_clean() history_words = self.new_find_elements(By.XPATH, self.ELEMENT["hot_search"]) for i in range(10): log.info("历史:{} vs 输入:{}".format(history_words[i].text, name_list[11 - i])) self.assertEqual(history_words[i].text, name_list[11 - i], "名字顺序不一致") except AssertionError: raise self.failureException() except Exception as e: log.error(e) raise Exception @getimage def test_023_qbfu_sb_p0(self): """ 商标服务改版,此处只做入口校验,有单独模块处理 """ log.info(self.test_023_qbfu_sb_p0.__doc__) try: self.in_allserver("sb", 2) a = self.new_find_element(By.XPATH, self.ELEMENT["input_text"]).text log.info("输入框提示信息:{}".format(a)) self.assertEqual(a, "输入商标名称,申请号,申请人信息", msg="输入框提示信息不正确") b = self.new_find_element(By.ID, self.ELEMENT["page_title"]).text log.info("页面title:{}".format(b)) self.assertEqual(b, "查商标", msg="页面title不一致") except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_024_qbfu_zl_p0(self): """ 专利功能正常使用 1、热门搜索 2、输入搜索—有结果 3、输入搜搜索---无结果 4、最近搜素 5、一键清除 6、搜索有结果点击查看详情 """ log.info(self.test_024_qbfu_zl_p0.__doc__) try: self.in_allserver("zl", 2) a = self.new_find_element(By.ID, self.ELEMENT["search_input"]).text self.assertEqual(a, "请输入专利名、专利号或公司名称", msg="输入框提示信息不正确") # 随机点击热搜公司 b = self.hot_search() log.info("点击热搜公司:{}".format(b)) c = self.isElementExist(By.ID, self.ELEMENT["search_title"]) self.assertTrue(c, msg="结果页存在数据") d = self.new_find_elements( By.ID, self.ELEMENT["Application"])[0].text # 专利结果页「申请号:」 d1 = self.new_find_elements( By.ID, self.ELEMENT["Application_day"])[0].text # 专利结果页「商标类别:」 self.assertEqual(d, "申请号:") self.assertEqual(d1, "申请日:") # 点击搜索结果item a = self.new_find_elements( By.ID, self.ELEMENT["item_name"])[0].text # 专利结果页-标题 c = self.new_find_elements( By.ID, self.ELEMENT["fxr_name"])[0].text # 专利搜索结果页-申请号 self.new_find_elements(By.ID, self.ELEMENT["item_name"])[0].click() b = self.new_find_element( By.ID, self.ELEMENT["court_detail_tv_title"]).text a1 = self.new_find_element(By.ID, self.ELEMENT["detail_title"]).text c1 = self.new_find_element(By.ID, self.ELEMENT["apply_num"]).text self.assertEqual(b, "专利详情", msg="页面title不一致") self.assertEqual(a1, a, msg="专利详情页:{} vv 专利结果页:{} 「专利标题」不对应".format( a1, a)) self.assertEqual(c1, c, msg="专利详情页:{} vv 专利结果页:{} 「申请no」不对应".format( c1, c)) self.driver.keyevent(4) # 输入搜索无结果-刘峰随便来 self.search_clean() self.search_input("刘峰随便来") e = self.is_toast_exist("无数据") self.assertTrue(e, msg="toast提示未捕获") f = self.isElementExist(By.ID, self.ELEMENT["search_title"]) self.assertFalse(f, msg="标识存在的话是有结果") # 输入搜索—有结果 天眼查 self.search_clean() self.search_input("天眼查") c1 = self.isElementExist(By.ID, self.ELEMENT["search_title"]) self.assertTrue(c1, msg="应该有结果,展示无结果") self.search_clean() # 一键清除 self.search_recent_clear(2) f = self.isElementExist(By.ID, self.ELEMENT["search_recent_clear"]) self.assertTrue(f, msg="一键清除-取消,最近搜索按钮还存在") self.search_recent_clear() g = self.isElementExist(By.ID, self.ELEMENT["search_recent_clear"]) self.assertFalse(g, msg="一键清除-确认,最近搜索按钮不存在") h = self.isElementExist(By.XPATH, self.ELEMENT["hotsearch_bs"]) self.assertTrue(h, msg="一键清除不存在,「热门搜素」存在") # 最近搜索记录 name_list = [ "马云", "孙凯", "王四会", "马丁", "韩磊", "李明", "向小叶", "蓝小凯", "李晓凯", "朱小凯", "赵小凯", "陈小凯", ] for name in name_list: log.info("输入搜索词:{}".format(name)) self.search_input(name) self.search_clean() history_words = self.new_find_elements(By.XPATH, self.ELEMENT["hot_search"]) for i in range(10): log.info("历史:{} vs 输入:{}".format(history_words[i].text, name_list[11 - i])) self.assertEqual(history_words[i].text, name_list[11 - i], "名字顺序不一致") except AssertionError: raise self.failureException() except Exception as e: log.error(e) raise Exception
# @Time : 2020-03-02 16:36 # @Author : sunkai # @Email : [email protected] # @File : company_detail_business_info.py # @Software: PyCharm from common.MyTest import MyTest from common.operation import Operation, getimage from selenium.webdriver.common.by import By from common.ReadData import Read_Ex from common.CreditIdentifier import UnifiedSocialCreditIdentifier from Providers.logger import Logger from common.check_rules import * import re from Providers.account.account import Account excel = Read_Ex() elements = excel.read_excel("companydetailsunkai") log = Logger("企业背景").getlog() # 企业背景-工商信息 class TestBusinessInfo(MyTest, Operation): account = Account() username = account.get_account('vip') password = account.get_pwd() def into_company_detail(self, company): """ 通过搜索进入公司详情页,搜索结果选择第一条 :param company: 搜索公司名称 :return: None
class Search_companyTest(MyTest, Operation): """查公司_04""" a = Read_Ex() ELEMENT = a.read_excel("Search_company") # vip:11099990154(无所属公司及姓名) def is_valid_date(self, str): """判断日期字符串格式是否为YYYY.MM.DD""" try: time.strptime(str, "%Y.%m.%d") return True except: return False def login_page_check(self, way, element): '''判断是否在登录页面''' if way == 1: self.new_find_element(By.ID, element).click() elif way == 2: self.new_find_element(By.XPATH, element).click() result = self.isElementExist(By.ID, "com.tianyancha.skyeye:id/btv_title") text = self.new_find_element(By.ID, "com.tianyancha.skyeye:id/btv_title").text if text == '短信验证码登录': log.info('当前在短信验证码登录页面') elif text == '密码登录': log.info('当前在密码登录页面') return result def go_export(self, keyword): self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.new_find_element( By.ID, self.ELEMENT["middle_search_box"]).send_keys(keyword) self.new_find_element(By.ID, self.ELEMENT["export_data"]).click() def get_title_name(self): '''获取页面title名称''' text = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/app_title_name').text return text def page_back(self): """页面返回""" self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/app_title_back').click() @getimage def test_CGS_ZSSJGY_0001(self): '''搜索结果页-数据导出-未登录''' log.info(self.test_CGS_ZSSJGY_0001.__doc__) goal = "未登录下点击导出数据弹出登陆页面" login_status = self.is_login() if login_status == True: self.logout() self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.new_find_element( By.ID, self.ELEMENT["middle_search_box"]).send_keys("北京金堤科技有限公司") result = self.login_page_check(1, self.ELEMENT["export_data"]) self.assertTrue(result, "错误————%s" % goal) @getimage def test_CGS_ZSSJGY_0002(self): '''搜索结果页-数据导出-非VIP''' log.info(self.test_CGS_ZSSJGY_0002.__doc__) login_status = self.is_login() if login_status == True: self.logout() account = self.account.get_account() self.login(account, self.account.get_pwd()) goal = "非vip账号已登陆点击数据导出弹出开通vip弹框" self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.new_find_element( By.ID, self.ELEMENT["middle_search_box"]).send_keys("北京金堤科技有限公司") self.new_find_element(By.ID, self.ELEMENT["export_data"]).click() text = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_top_title').text self.assertEqual(text, '开通VIP会员可导出数据', "错误————%s" % goal) self.logout() self.account.release_account(account) @getimage def test_CGS_ZSSJGY_0003(self): '''搜索结果页-数据导出-VIP导出不超过5000条''' log.info(self.test_CGS_ZSSJGY_0003.__doc__) login_status = self.is_login() if login_status == True: self.logout() self.login("11099990154", "ef08beca") goal_01 = "vip账号已登陆点击数据导出公司数据弹框" self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.new_find_element( By.ID, self.ELEMENT["middle_search_box"]).send_keys("北京金堤科技有限公司") text = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_search_title').text count = int(re.sub("\D", "", text)) if count <= 5000: self.new_find_element(By.ID, self.ELEMENT["export_data"]).click() result = self.isElementExist(By.XPATH, self.ELEMENT["toast"]) if result == True: log.error("今日导出次数已达上限") else: result_01 = self.isElementExist(By.ID, self.ELEMENT["mailbox_pop_up"]) self.assertTrue(result_01, "错误————%s" % goal_01) goal_02 = "导出公司数据弹框中点击x回到搜索结果页" self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/btn_finish').click() text_02 = self.new_find_element( By.ID, self.ELEMENT["middle_search_box"]).text self.assertEqual(text_02, "北京金堤科技有限公司", "错误————%s" % goal_02) goal_03 = "导出公司数据弹框中点击一键清空按钮清空输入框内容" time.sleep(1) self.new_find_element(By.ID, self.ELEMENT["export_data"]).click() self.new_find_element( By.ID, self.ELEMENT["mailbox_search_box"]).send_keys("123456") self.new_find_element( By.ID, self.ELEMENT["mailbox_search_clean"]).click() text_03 = self.new_find_element( By.ID, self.ELEMENT["mailbox_search_box"]).text self.assertEqual(text_03, "请输入你的邮箱地址", "错误————%s" % goal_03) goal_04 = "邮箱格式不正确点击立即导出,taost:邮箱格式不正确" self.new_find_element( By.ID, self.ELEMENT["mailbox_search_box"]).send_keys("123456") self.new_find_element(By.ID, self.ELEMENT["btn_pos"]).click() text_04 = self.new_find_element(By.XPATH, self.ELEMENT["toast"]).text self.assertEqual(text_04, "邮箱格式不正确", "错误————%s" % goal_04) goal_05 = "邮箱为空点击发送,taost:邮箱不能为空" self.new_find_element( By.ID, self.ELEMENT["mailbox_search_clean"]).click() time.sleep(1) self.new_find_element(By.ID, self.ELEMENT["btn_pos"]).click() text_05 = self.new_find_element(By.XPATH, self.ELEMENT["toast"]).text self.assertEqual(text_05, "邮箱不能为空", "错误————%s" % goal_05) goal_06 = "邮箱格式正确点击发送,taost:发送成功,请注意查收邮件" self.new_find_element( By.ID, self.ELEMENT["mailbox_search_box"]).send_keys( "*****@*****.**") self.new_find_element(By.ID, self.ELEMENT["btn_pos"]).click() text_06 = self.new_find_element(By.XPATH, self.ELEMENT["toast"]).text self.assertEqual(text_06, "发送成功,请注意查收邮件", "错误————%s" % goal_06) goal_07 = "再次输入不同关键词导出数据时默认为上一次输入的有效邮箱" self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() self.new_find_element( By.ID, self.ELEMENT["middle_search_box"]).send_keys( "北京百度网讯网讯科技有限公司") self.new_find_element(By.ID, self.ELEMENT["export_data"]).click() text_07 = self.new_find_element( By.ID, self.ELEMENT["mailbox_search_box"]).text self.assertEqual(text_07, "*****@*****.**", "错误————%s" % goal_07) self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/btn_finish').click() else: log.error('case搜索结果超出5000条') @getimage def test_CGS_ZSSJGY_0004(self): '''搜索结果页-数据导出-VIP导出超过5000条''' log.info(self.test_CGS_ZSSJGY_0004.__doc__) login_status = self.is_login() if login_status == True: self.logout() self.login("11099990154", "ef08beca") self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() search_word = '京东科技' self.new_find_element( By.ID, self.ELEMENT["middle_search_box"]).send_keys(search_word) text = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_search_title').text search_num = int(re.sub("\D", "", text)) if search_num > 5000: goal_01 = '点击数据导出弹出导出公司数据弹框' self.new_find_element(By.ID, self.ELEMENT["export_data"]).click() text_01 = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/txt_title').text char = '导出公司数据' self.assertEqual(text_01, char, msg='错误————%s' % goal_01) goal_02 = "vip账号超过5000条数据时点击数据导出展示增值导出服务入口" result_02 = self.isElementExist( By.ID, 'com.tianyancha.skyeye:id/rl_value_type') self.assertTrue(result_02, msg='错误————%s' % goal_02) goal_021 = '默认选中VIP导出服务' result_021 = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/rl_common_type').is_selected() self.assertTrue(result_021, msg='错误————%s' % goal_021) goal_022 = '超出5000数据2分一条' price_022 = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_price').text search_price = str((search_num - 5000) * 0.02) self.assertEqual(price_022, search_price, msg='错误————%s' % goal_022) goal_023 = "导出公司数据弹框中点击一键清空按钮清空输入框内容" time.sleep(1) self.new_find_element( By.ID, self.ELEMENT["mailbox_search_box"]).send_keys("123456") self.new_find_element( By.ID, self.ELEMENT["mailbox_search_clean"]).click() text_023 = self.new_find_element( By.ID, self.ELEMENT["mailbox_search_box"]).text self.assertEqual(text_023, "请输入你的邮箱地址", "错误————%s" % goal_023) goal_024 = "邮箱格式不正确点击立即导出,taost:邮箱格式不正确" self.new_find_element( By.ID, self.ELEMENT["mailbox_search_box"]).send_keys("123456") self.new_find_element(By.ID, self.ELEMENT["btn_pos"]).click() text_024 = self.new_find_element(By.XPATH, self.ELEMENT["toast"]).text self.assertEqual(text_024, "邮箱格式不正确", "错误————%s" % goal_024) goal_025 = "邮箱为空点击发送,taost:邮箱不能为空" self.new_find_element( By.ID, self.ELEMENT["mailbox_search_clean"]).click() time.sleep(1) self.new_find_element(By.ID, self.ELEMENT["btn_pos"]).click() text_025 = self.new_find_element(By.XPATH, self.ELEMENT["toast"]).text self.assertEqual(text_025, "邮箱不能为空", "错误————%s" % goal_025) goal_03 = '导出数据弹窗展示的数据量与搜索结果一致' text_03 = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_export_count').text toast_num = int(re.sub("\D", "", text_03)) self.assertEqual(toast_num, search_num, msg='错误————%s' % goal_03) goal_04 = '有输入邮箱输入框' result_04 = self.isElementExist(By.ID, self.ELEMENT["mailbox_search_box"]) email = "*****@*****.**" self.new_find_element( By.ID, self.ELEMENT["mailbox_search_box"]).send_keys(email) self.assertTrue(result_04, msg='错误————%s' % goal_04) goal_05 = '点击增值导出入口进入支付页面带入搜索词' self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/rl_value_type').click() self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/btn_pos').click() text_05 = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_name').text self.assertEqual(text_05, search_word, msg='错误————%s' % goal_05) goal_06 = '导出数量带入支付页面,数量小于或等于搜索数量' realCount = int( self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_count').text) if realCount <= search_num: result_06 = True else: result_06 = False self.assertTrue(result_06, msg='错误————%s' % goal_06) goal_07 = '超出5000数据2分一条' text_07 = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_price').text time.sleep(5) num = int(realCount) price = (num - 5000) * 0.02 num_07 = text_07.replace('¥ ', '') if '.' in num_07: money = float(num_07) else: money = int(num_07) log.info(money) log.info(price) self.assertEqual(money, price, msg='错误————%s' % goal_07) goal_08 = '填写邮箱带入支付页' text_08 = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/et_email').text self.assertEqual(text_08, email, msg='错误————%s' % goal_08) goal_09 = '点击?弹出提示弹框' self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/iv_mark').click() word = '查询结果因数据差异性会有上下浮动情况,以实际导出数量为准。' text_09 = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/txt_msg').text self.assertEqual(text_09, word, msg='错误————%s' % goal_09) goal_10 = '点击我知道了返回增值导出支付页' self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/btn_pos').click() result = self.isElementExist( By.XPATH, "//*[@resource-id='com.tianyancha.skyeye:id/tv_name' and @text='%s']" % search_word) self.assertTrue(result, msg='错误————%s' % goal_10) else: log.error('case搜索结果不足5000条') @getimage def test_CGS_ZSSJGY_0005(self): '''搜索结果页-批量联系-未登录''' log.info(self.test_CGS_ZSSJGY_0005.__doc__) login_status = self.is_login() if login_status == True: self.logout() goal = "未登录点击批量联系跳转登陆页" self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.new_find_element( By.ID, self.ELEMENT["middle_search_box"]).send_keys("土木建筑") result = self.login_page_check(1, self.ELEMENT["batch_contact"]) self.assertTrue(result, "错误————%s" % goal) @getimage def test_CGS_ZSSJGY_0006(self): '''搜索结果页-批量联系-非VIP''' log.info(self.test_CGS_ZSSJGY_0006.__doc__) login_status = self.is_login() if login_status == True: self.logout() account = self.account.get_account() self.login(account, self.account.get_pwd()) goal = "非vip点击批量联系提示开通vip" self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.new_find_element( By.ID, self.ELEMENT["middle_search_box"]).send_keys("土木建筑") self.new_find_element(By.ID, self.ELEMENT["batch_contact"]).click() text = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_top_title').text self.assertEqual(text, "开通VIP会员使用批量联系", "错误————%s" % goal) self.logout() self.account.release_account(account) @getimage def test_CGS_ZSSJGY_0007(self): '''搜索结果页-批量联系-VIP''' log.info(self.test_CGS_ZSSJGY_0007.__doc__) login_status = self.is_login() if login_status == True: self.logout() self.login("11099990154", "ef08beca") self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() searchKey = '北京阿里巴巴技术有限公司' self.new_find_element( By.ID, self.ELEMENT["middle_search_box"]).send_keys(searchKey) text = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_search_title').text search_num = re.sub("\D", "", text) self.new_find_element(By.ID, self.ELEMENT["batch_contact"]).click() goal_01 = '批量联系页面带入搜索列表数量' text_01 = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_search_title').text self.assertEqual(text_01, text, msg='错误——%s' % goal_01) goal_02 = "批量联系页面输入框带入搜索关键词" text_02 = self.new_find_element( By.ID, self.ELEMENT["contact_search_box"]).text self.assertEqual(text_02, searchKey, "错误————%s" % goal_02) goal_03 = "批量联系页面-列表默认展示20条数据" self.new_find_element(By.ID, self.ELEMENT["contact_check_all"]).click() text_03 = self.new_find_element( By.ID, self.ELEMENT["contact_check_count"]).text result = re.sub("\D", "", text_03) num = int(result) self.assertEqual(num, 20, "错误————%s" % goal_03) goal_04 = "批量联系选择页点击取消返回搜索结果页" self.new_find_element(By.ID, self.ELEMENT["contact_cancel"]).click() text_04 = self.new_find_element( By.ID, (self.ELEMENT["middle_search_box"])).text self.assertEqual(text_04, searchKey, "错误————%s" % goal_04) goal_05 = "批量联系选择页未选择公司时点击去联系:置灰不可点" self.new_find_element(By.ID, self.ELEMENT["batch_contact"]).click() result_07 = self.new_find_element( By.ID, self.ELEMENT["go_contact"]).is_enabled() self.assertFalse(result_07, "错误————%s" % goal_05) goal_06 = '批量联系选择页选择1家公司' self.new_find_elements(By.ID, self.ELEMENT["contact_select"])[0].click() text_06 = self.new_find_element( By.ID, self.ELEMENT["contact_check_count"]).text self.assertEqual(text_06, "1", "错误————%s" % goal_06) goal_07 = '批量联系选择页选择公司点击去联系进入批量联系页面' self.new_find_element(By.ID, self.ELEMENT['go_contact']).click() page_result = self.get_title_name() self.assertEqual(page_result, '批量联系', msg="错误——%s" % goal_07) goal_08 = ['顶部提示:今日剩余n封', '3s后消失'] result_08_01 = self.isElementExist(By.ID, self.ELEMENT['contactpage_limit']) self.assertTrue(result_08_01, msg='错误——%s' % goal_08[0]) time.sleep(3) result_08_02 = self.isElementExist(By.ID, self.ELEMENT['contactpage_limit']) self.assertFalse(result_08_02, msg='错误——%s' % goal_08[1]) goal_09 = '选择公司数量带入' text_09 = self.new_find_element(By.ID, self.ELEMENT['contactpage_title']).text num_09 = re.sub("\D", "", text_09) self.assertEqual(num_09, text_06, msg='错误——%s' % goal_09) goal_10 = '日期格式YYYY.MM.DD' text_10 = self.new_find_element(By.ID, self.ELEMENT['contactpage_time']).text result_10 = self.is_valid_date(text_10) self.assertTrue(result_10, msg='错误——%s' % goal_10) goal_12 = "批量联系页面-用户信息-点击公司输入框:跳转到修改公司页面" self.new_find_element(By.ID, self.ELEMENT["contactpage_company"]).click() text_12 = self.new_find_element(By.ID, self.ELEMENT["app_title_name"]).text self.assertEqual(text_12, "修改公司", "错误————%s" % goal_12) goal_13 = "输入“北京金堤”点击一键清除icon:清空输入框内容" self.new_find_element( By.ID, self.ELEMENT["contactpage_change_search"]).send_keys("北京金堤") self.new_find_element( By.ID, self.ELEMENT["contactpage_suggest_clear"]).click() text_13 = self.new_find_element( By.ID, self.ELEMENT["contactpage_change_search"]).text self.assertEqual(text_13, "请输入公司名称", "错误————%s" % goal_13) goal_14 = "再次输入-北京金堤:下拉列表匹配公司,展示五条" self.new_find_element( By.ID, self.ELEMENT["contactpage_change_search"]).send_keys("北京金堤") result_list = self.new_find_elements( By.XPATH, "//*[@resource-id='com.tianyancha.skyeye:id/tv_com_name']") num_14 = len(result_list) self.assertEqual(num_14, 5, "错误————%s" % goal_14) goal_15 = ["选择-北京金堤科技有限公司进入批量联系页面", "带入北京金堤科技有限公司"] self.new_find_element( By.XPATH, self.ELEMENT["contactpage_company_first"]).click() text_1501 = self.new_find_element(By.ID, self.ELEMENT["app_title_name"]).text self.assertEqual(text_1501, "批量联系", "错误————%s" % goal_15[0]) text_1502 = self.new_find_element( By.ID, self.ELEMENT["contactpage_company"]).text self.assertEqual(text_1502, "北京金堤科技有限公司", "错误————%s" % goal_15[1]) goal_16 = "批量联系页面-用户信息-姓名能正确输入" self.new_find_element( By.ID, self.ELEMENT["contactpage_person"]).send_keys("测试") text_16 = self.new_find_element( By.ID, self.ELEMENT["contactpage_person"]).text self.assertEqual(text_16, "测试", "错误————%s" % goal_16) goal_17 = ["批量联系页面-洽谈合作默认选中", "title:我的合作意向是:", "描述内容文案:描述你的合作意向"] result_1701 = self.new_find_element( By.ID, self.ELEMENT["contactpage_iwanner_1"]).get_attribute("checked") self.assertEqual(result_1701, "true", "错误————%s" % goal_17[0]) text_1702 = self.new_find_element( By.ID, self.ELEMENT["contactpage_intent_iwanner"]).text self.assertEqual(text_1702, "我的合作意向是:", "错误————%s" % goal_17[1]) text_1703 = self.new_find_element( By.ID, self.ELEMENT["contactpage_teamwork_intent"]).text self.assertEqual(text_1703, "描述你的合作意向", "错误————%s" % goal_17[2]) goal_18 = ["批量联系页面-选择商讨投资", "title:我的投资意向是:", "描述内容文案:描述你的投资意向"] self.new_find_element(By.ID, self.ELEMENT["contactpage_iwanner_2"]).click() result_1801 = self.new_find_element( By.ID, self.ELEMENT["contactpage_iwanner_2"]).get_attribute("checked") self.assertEqual(result_1801, "true", "错误————%s" % goal_18[0]) text_1802 = self.new_find_element( By.ID, self.ELEMENT["contactpage_intent_iwanner"]).text self.assertEqual(text_1802, "我的投资意向是:", "错误————%s" % goal_18[1]) text_1803 = self.new_find_element( By.ID, self.ELEMENT["contactpage_teamwork_intent"]).text self.assertEqual(text_1803, "描述你的投资意向", "错误————%s" % goal_18[2]) goal_19 = "批量联系页面-联系方式默认为登录账号" text_19 = self.new_find_element( By.ID, self.ELEMENT["contactpage_person_number"]).text self.assertEqual(text_19, "11099990154", "错误————%s" % goal_19) @getimage def test_CGS_ZSSJGY_0008(self): '''搜索结果页-批量联系增值''' log.info(self.test_CGS_ZSSJGY_0008.__doc__) login_status = self.is_login() if login_status == True: self.logout() self.login("11099990154", "ef08beca") self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() searchKey = '北京阿里巴巴技术有限公司' self.new_find_element( By.ID, self.ELEMENT["middle_search_box"]).send_keys(searchKey) # text = self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/tv_search_title').text # search_num = re.sub("\D", "", text) self.new_find_element(By.ID, self.ELEMENT["batch_contact"]).click() #划到页面最底部 count = 0 while True: if count <= 20: self.swipeUp(x1=0.5, y1=0.90, y2=0.10, t=500) count += 1 else: break self.new_find_element(By.ID, self.ELEMENT['contact_check_all']).click() #全部选中 count = int( self.new_find_element( By.ID, self.ELEMENT["contact_check_count"]).text) #获取已选择数量 log.info(count) if count > 100: goal_01 = '选择数量大于100时弹出选择增值弹框' self.new_find_element(By.ID, self.ELEMENT['go_contact']).click() result_01 = self.isElementExist( By.ID, 'com.tianyancha.skyeye:id/lLayout_bg') self.assertTrue(result_01, msg='错误——%s' % goal_01) goal_02 = '展示剩余n家文案' word = '正在使用VIP功能,今日剩余100家' text_02 = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_common_count').text self.assertEqual(word, text_02, msg='错误——%s' % goal_02) goal_03 = ['默认选中VIP批量联系', '展示可联系n家企业'] result_03 = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/rl_common_type').is_selected() self.assertTrue(result_03, msg='错误——%s' % goal_03[0]) text_03 = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_count').text self.assertEqual(text_03, '可联系前100家企业', msg='错误——%s' % goal_03[1]) goal_04 = ['超出100家公司一条¥0.1', '展示可联系n家企业'] text_04 = float( self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_price').text) price = (count - 100) * 0.1 self.assertEqual(text_04, price, msg='错误——%s' % goal_04[0]) text_0401 = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_export_count').text num = int(re.sub("\D", "", text_0401)) self.assertEqual(num, count, msg='错误——%s' % goal_04[1]) goal_05 = '选择增值批量联系点击立即发送进入支付页' self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/rl_value_type').click() self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/btn_pos').click() text_05 = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_hint').text self.assertEqual(text_05, '批量与企业获取联系', msg='错误——%s' % goal_05) goal_06 = '增值批量联系支付页带入选择数量、价格' text_06 = int( self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_count').text) self.assertEqual(text_06, count, msg='带入数量有误') price_06 = self.new_find_element( By.ID, 'com.tianyancha.skyeye:id/tv_price').text price = '¥' + str(price) self.assertEqual(price, price_06, msg='价格有误') goal_07 = '选择VIP批量联系进入批量联系页面' self.page_back() self.new_find_element(By.ID, self.ELEMENT["batch_contact"]).click() self.new_find_element(By.ID, self.ELEMENT['contact_check_all']).click() self.new_find_element(By.ID, self.ELEMENT['go_contact']).click() self.new_find_element(By.ID, 'com.tianyancha.skyeye:id/btn_pos').click() page_result = self.get_title_name() self.assertEqual(page_result, '批量联系', msg="错误——%s" % goal_07) else: log.error('case数量小于100%d' % count)
class Search_relation_sift_vip(MyTest, Operation): """查关系_高级筛选_04""" a = Read_Ex() ELEMENT = a.read_excel("Search_relation") account = Account() phone_vip = account.get_account("vip") @classmethod def setUpClass(cls): super().setUpClass() cls.sift_opera = SiftOperation(cls.driver, cls.ELEMENT) cls.sift_opera.login_vip(cls.phone_vip, cls.account.get_pwd()) @classmethod def tearDownClass(cls): cls.account.release_account(cls.phone_vip, 'vip') super().tearDownClass() def get_company_sszt(self, selectTarget, inputTarget, index=None): """ 获取公司:上市状态并断言 :param selectTarget: 选中条件 :param inputTarget: 输入内容 :param index: 选中项索引 """ result = None selectText = self.sift_opera.point2company(selectTarget) firm_name = self.new_find_element(By.ID, self.ELEMENT["firm_detail_name_tv"]).text log.info("高级筛选:{},断言公司名称:{}".format(selectText, firm_name)) if index == 1: for i in range(10): if self.isElementExist(By.ID, self.ELEMENT["stock_title_tv"]): stock_info = self.new_find_element(By.ID, self.ELEMENT["stock_title_tv"]).text log.info("股票信息:{}".format(stock_info)) stock_title = self.isElementExist(By.ID, self.ELEMENT["stock_title_tv"]) result = stock_title break else: self.swipeUp(x1=0.5, y1=0.7, y2=0.3, t=2000) if i == 29: stock_title = self.isElementExist(By.ID, self.ELEMENT["stock_title_tv"]) result = stock_title else: for i in range(10): if self.isElementExist(By.XPATH, self.ELEMENT["company_background"]): atlas = self.new_find_element(By.XPATH, self.ELEMENT["background_to_atlas"]).text result = "天眼图谱" is atlas break else: self.swipeUp(x1=0.5, y1=0.7, y2=0.3, t=2000) if i == 29: company_backgrand = self.isElementExist(By.ID, self.ELEMENT["company_background"]) result = company_backgrand self.sift_opera.back2relation_search(inputTarget) return result def get_company_500(self, selectTarget, inputTarget, index=None): """ 获取公司:500强企业断言 :param selectTarget: 选中条件 :param inputTarget: 输入内容 :param index: 选中项索引 """ selectText = self.sift_opera.point2company(selectTarget) company_name = self.new_find_element(By.ID, self.ELEMENT["firm_detail_name_tv"]).text log.info("高级筛选:{},断言公司名称:{}".format(selectText, company_name)) current_dir = os.path.abspath(os.path.dirname(__file__)) json_dir = os.path.dirname(current_dir) + "/../Data/500.json" with open(json_dir, "r") as json_file: data = json.load(json_file) self.sift_opera.back2relation_search(inputTarget) return company_name, data[str(index)] @getimage def test_001_cgx_gjsx_sszt_p0(self): """查关系-搜索中间页,高级筛选:上市状态""" log.info(self.test_001_cgx_gjsx_sszt_p0.__doc__) try: inputTarget = self.sift_opera.search_key(2) num_sszt = random.randint(1, 2) selectTarget, selectText = self.sift_opera.get_key("more_sszt_title", "more_sszt", num_sszt) result = self.get_company_sszt(selectTarget, inputTarget, num_sszt) self.assertTrue(result) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_002_cgx_gjsx_500_p0(self): """查关系-搜索中间页,高级筛选:500强""" log.info(self.test_002_cgx_gjsx_500_p0.__doc__) try: inputTarget = self.sift_opera.search_key(2) num_500 = random.randint(1, 2) selectTarget, selectText = self.sift_opera.get_key("more_500_title", "more_500", num_500) company, data = self.get_company_500(selectTarget, inputTarget, num_500) self.assertIn(company, data, "===失败-「{}」,断言失败===".format(selectText)) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception
class Advanced_search(MyTest, Operation): """金刚区_高级搜索""" a = Read_Ex() ELEMENT = a.read_excel('All_server') def in_allserver(self, value, size=1): """ 金刚区 全部服务进入对应的入口 value: 模块名称 example: cll(查老赖) """ self.value = value self.new_find_elements(By.ID, self.ELEMENT['king_area'])[4].click() if size is 1: pass else: self.swipeUp() self.new_find_element(By.XPATH, self.ELEMENT[self.value]).click() def hit_login(self, account='18535081116', password='******'): """ 点击操作正好遇到需要登录的时候使用 :param account: 账号 :param password: 密码 """ try: loc = (By.XPATH, '//*[@class="android.widget.TextView" and @text="短信验证码登录"]') login = self.isElementExist(*loc) if login: self.new_find_element( By.XPATH, "//*[@class='android.widget.TextView' and @text='密码登录']" ).click() self.new_find_element( By.XPATH, "//*[@class='android.widget.EditText' and @text='输入手机号']" ).send_keys(account) self.new_find_element( By.XPATH, "//*[@class='android.widget.EditText' and @text='输入密码']" ).send_keys(password) # 点击勾选协议 self.new_find_element( By.ID, "com.tianyancha.skyeye:id/cb_login_check").click() self.new_find_element( By.ID, "com.tianyancha.skyeye:id/tv_login").click() time.sleep(1) else: pass except Exception as e: print(e, '用户已登录') pass @getimage def test_001_jgq_gjss_p0(self): """ 金刚区-进入高级搜索页面 """ log.info(self.test_001_jgq_gjss_p0.__doc__) try: self.in_allserver('gjss') page_title = self.new_find_element(By.ID, self.ELEMENT['page_title']).text self.assertEqual('高级搜索', page_title, msg='页面title不一致') title1 = self.new_find_element( By.ID, self.ELEMENT['advance_search_keyword_input_et']).text self.assertEqual('请输入关键词(非必填)', title1, msg='页面标识不一致') except AssertionError: raise self.failureException() except Exception as e: print(e) raise Exception @getimage def test_002_jgq_gjss_p0(self): """ 金刚区-进入高级搜索页面 用户未登查看结果---调起登录 普通用户查看结果---开通VIP """ log.info(self.test_001_jgq_gjss_p0.__doc__) try: self.in_allserver('gjss') # 关键字搜索---有限公司 self.new_find_element( By.ID, self.ELEMENT['advance_search_keyword_input_et']).send_keys( '有限公司') # 点击「查看结果」 self.new_find_element( By.ID, self.ELEMENT['advance_search_check_result_tv']).click() log.info("未登录查看结果拉起登录") login = self.isElementExist(By.ID, self.ELEMENT['btv_title']) self.assertTrue(login) # 获取普通账号登录 account = Account() acc_pt_name = account.get_account('account') acc_pwd = account.get_pwd() log.info("登录普通账号:{},账号密码:{}".format(acc_pt_name, acc_pwd)) # 登录普通账号 self.hit_login(account=acc_pt_name, password=acc_pwd) # 普通账号没有权限----调起VIP弹框 VIP = self.new_find_element(By.ID, self.ELEMENT['tv_top_title']).text self.assertEqual(VIP, "开通VIP会员使用高级搜索") # 账号退出 self.logout() # 退还账号 account.release_account(acc_pt_name, "account") except AssertionError: raise self.failureException() except Exception as e: print(e) raise Exception @getimage def test_003_jgq_gjss_p0(self): """ 金刚区-进入高级搜索页面 VIP用户登查看结果--- """ log.info(self.test_001_jgq_gjss_p0.__doc__) try: self.in_allserver('gjss') # 关键字搜索---有限公司 self.new_find_element( By.ID, self.ELEMENT['advance_search_keyword_input_et']).send_keys( '有限公司') # 点击「查看结果」 self.new_find_element( By.ID, self.ELEMENT['advance_search_check_result_tv']).click() log.info("未登录查看结果拉起登录") login = self.isElementExist(By.ID, self.ELEMENT['btv_title']) self.assertTrue(login) # 获取VIP账号登录 account = Account() acc_vip_name = account.get_account('vip') acc_pwd = account.get_pwd() log.info("登录VIP账号:{},账号密码:{}".format(acc_vip_name, acc_pwd)) # 登录vip账号 self.new_find_element(By.ID, self.ELEMENT['et_phone']).clear() self.hit_login(account=acc_vip_name, password=acc_pwd) # 登录后进入搜索结果页 page_title = self.new_find_element(By.ID, self.ELEMENT['page_title']).text log.info("搜素结果页页面title:{}".format(page_title)) self.assertEqual(page_title, "搜索结果") self.logout() account.release_account(acc_vip_name, "vip") except AssertionError: raise self.failureException() except Exception as e: print(e) raise Exception @getimage def test_004_jgq_gjss_p0(self): """ 金刚区-进入高级搜索页面 VIP用户登查看有结果 """ log.info(self.test_001_jgq_gjss_p0.__doc__) try: # 获取普通账号登录 account = Account() acc_vip_name = account.get_account('vip') acc_pwd = account.get_pwd() log.info("登录普通账号:{},账号密码:{}".format(acc_vip_name, acc_pwd)) # 登录vip账号 self.login(phone_num=acc_vip_name, password=acc_pwd) self.in_allserver('gjss') # 关键字搜索---有限公司 self.new_find_element( By.ID, self.ELEMENT['advance_search_keyword_input_et']).send_keys( '有限公司') # 点击「查看结果」 self.new_find_element( By.ID, self.ELEMENT['advance_search_check_result_tv']).click() # 进入搜索结果页 page_title = self.new_find_element(By.ID, self.ELEMENT['page_title']).text log.info("搜素结果页页面title:{}".format(page_title)) self.assertEqual(page_title, "搜索结果") result = self.isElementExist( By.ID, self.ELEMENT['advance_search_result_count']) self.assertTrue(result) self.logout() account.release_account(acc_vip_name, "vip") except AssertionError: raise self.failureException() except Exception as e: print(e) raise Exception @getimage def test_005_jgq_gjss_p0(self): """ 金刚区-进入高级搜索页面 VIP用户登查看无结果---我也是醉了基金 """ log.info(self.test_001_jgq_gjss_p0.__doc__) try: # 获取普通账号登录 account = Account() acc_vip_name = account.get_account('vip') acc_pwd = account.get_pwd() log.info("登录普通账号:{},账号密码:{}".format(acc_vip_name, acc_pwd)) # 登录vip账号 self.login(phone_num=acc_vip_name, password=acc_pwd) self.in_allserver('gjss') # 关键字搜索---有限公司 self.new_find_element( By.ID, self.ELEMENT['advance_search_keyword_input_et']).send_keys( '我也是醉了基金') # 点击「查看结果」 self.new_find_element( By.ID, self.ELEMENT['advance_search_check_result_tv']).click() # 进入搜索结果页 page_title = self.new_find_element(By.ID, self.ELEMENT['page_title']).text log.info("搜素结果页页面title:{}".format(page_title)) self.assertEqual(page_title, "搜索结果") result = self.isElementExist( By.ID, self.ELEMENT['advance_search_result_count']) self.assertFalse(result) no_result = self.new_find_element( By.ID, self.ELEMENT['tv_empty_title']).text log.info(no_result) # 搜索结果页-无结果重新搜索 ele = self.new_find_element(By.ID, self.ELEMENT['tv_empty_sub_title']) print("-------", print(ele.size)) # self.driver.tap() # time.sleep(5) log.info("搜索无结果,点击重新搜索") self.logout() account.release_account(acc_vip_name, "vip") except AssertionError: raise self.failureException() except Exception as e: print(e) raise Exception
class Search_companyTest(MyTest, Operation): """查公司_01""" a = Read_Ex() ELEMENT = a.read_excel("Search_company") def check_result(self, keyword, value): """获取关键词搜索结果列表第一家公司名称""" self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys(keyword) if value == 1: text = self.new_find_element(By.XPATH, self.ELEMENT["search_result_first"]).text return text elif value == 0: text = self.new_find_element(By.ID, self.ELEMENT["search_result"]).text return text def search_clear(self): self.new_find_element(By.ID,self.ELEMENT['search_clean']).click() @getimage def test_CGS_SSSY_0001(self): '''查公司-首页交互''' log.info(self.test_CGS_SSSY_0001.__doc__) goal_01 = "首页-输入框文案" text_01 = self.new_find_element(By.ID, self.ELEMENT["search_box"]).text self.assertEqual(text_01, "输入公司名称、老板姓名、品牌名称等", "错误————%s" % goal_01) goal_02 = "首页-点击搜索框能跳转至搜索中间页" self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() result_02 = self.new_find_element(By.ID, self.ELEMENT["address_book_all"]) self.assertTrue(result_02, "错误————%s" % goal_02) goal_03 = "搜索中间页-输入框文案" text_03 = self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).text self.assertEqual(text_03, "输入公司名称、老板姓名、品牌名称等", "错误————%s" % goal_03) @getimage def test_CGS_SSZJY_0002(self): '''查公司-搜索中间页支持搜索范围-公司全称''' log.info(self.test_CGS_SSZJY_0002.__doc__) goal = "输入公司全称能搜索到公司" result = self.check_result("北京金堤科技有限公司", 1) self.assertEqual(result, "北京金堤科技有限公司", "错误————%s" % goal) @getimage def test_CGS_SSZJY_0003(self): '''查公司-搜索中间页支持搜索范围-统一信用代码''' log.info(self.test_CGS_SSZJY_0003.__doc__) goal = "输入统一信用代码能搜索到公司" result = self.check_result("9111010831813798XE", 1) self.assertEqual(result, "北京金堤科技有限公司", "错误————%s" % goal) @getimage def test_CGS_SSZJY_0004(self): '''查公司-搜索中间页支持搜索范围-老板名称''' log.info(self.test_CGS_SSZJY_0004.__doc__) goal = "输入老板名称能搜索到公司" result = self.check_result("柳超", 1) self.assertEqual(result, "北京金堤科技有限公司", "错误————%s" % goal) @getimage def test_CGS_SSZJY_0005(self): '''查公司-搜索中间页支持搜索范围-品牌/机构''' log.info(self.test_CGS_SSZJY_0005.__doc__) goal_01 = "输入品牌名称能搜索到项目品牌" self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys("天眼查") result_01 = self.isElementExist(By.ID,"com.tianyancha.skyeye:id/tv_title_trademark") self.assertTrue(result_01,"错误————%s" % goal_01) goal_02 = "输入投资机构名称能搜索到投资机构" self.search_clear() self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys("浦信资本") result_02 = self.isElementExist(By.ID, "com.tianyancha.skyeye:id/tv_title_trademark") self.assertTrue(result_02, "错误————%s" % goal_02) @getimage def test_CGS_SSZJY_0006(self): '''查公司-搜索中间页支持搜索范围-关键字''' log.info(self.test_CGS_SSZJY_0006.__doc__) goal = "输入关键字能搜索到公司" result = self.check_result("百度", 1) self.assertEqual(result, "北京百度网讯科技有限公司", "错误————%s" % goal) @getimage def test_CGS_SSZJY_0007(self): '''查公司-搜索中间页支持搜索范围-手机号''' log.info(self.test_CGS_SSZJY_0007.__doc__) goal = "输入手机号能搜索到公司" result = self.check_result("18401651734", 0) self.assertEqual(result, "贝壳找房(北京)科技有限公司", "错误————%s" % goal) @getimage def test_CGS_SSZJY_0008(self): '''查公司-搜索中间页支持搜索范围-座机号''' log.info(self.test_CGS_SSZJY_0008.__doc__) goal = "输入座机号能搜索到公司" result = self.check_result("010-59328108", 0) self.assertEqual(result, "北京链家旅居科技服务有限公司", "错误————%s" % goal) @getimage def test_CGS_SSZJY_0009(self): '''查公司-搜索中间页支持搜索范围-邮箱''' log.info(self.test_CGS_SSZJY_0009.__doc__) goal = "输入邮箱能搜索到公司" result = self.check_result("*****@*****.**", 0) self.assertEqual(result, "北京高策房地产经纪有限公司", "错误————%s" % goal) @getimage def test_CGS_SSZJY_0010(self): '''查公司-搜索中间页支持搜索范围-地址''' log.info(self.test_CGS_SSZJY_0010.__doc__) goal = "输入地址能搜索到公司" result = self.check_result("北京市海淀区西二旗西路2号院35号楼", 0) self.assertEqual(result, "贝壳找房(北京)科技有限公司", "错误————%s" % goal) @getimage def test_CGS_SSZJY_0011(self): '''查公司-搜索中间页支持搜索范围-曾用名''' log.info(self.test_CGS_SSZJY_0010.__doc__) goal = "输入曾用名能搜索到公司" result = self.check_result("链家网(北京)科技有限公司", 0) self.assertEqual(result, "贝壳找房(北京)科技有限公司", "错误————%s" % goal) @getimage def test_CGS_SSZJY_0012(self): '''查公司-搜索中间页支持搜索范围-英文名''' log.info(self.test_CGS_SSZJY_0012.__doc__) goal = "输入英文名能搜索到公司" result = self.check_result("Beijing Jindi Technology Co.,Ltd.", 0) self.assertEqual(result, "北京金堤科技有限公司", "错误————%s" % goal) @getimage def test_CGS_SSZJY_0013(self): '''查公司-搜索中间页支持搜索范围-域名''' log.info(self.test_CGS_SSZJY_0013.__doc__) goal = "输入域名能搜索到公司" result = self.check_result("www.tianyancha.com", 0) self.assertEqual(result, "北京天眼查科技有限公司", "错误————%s" % goal) @getimage def test_CGS_SSZJY_0014(self): '''查公司-搜索中间页支持搜索范围-经营范围''' log.info(self.test_CGS_SSZJY_0014.__doc__) goal = "输入经营范围能搜索到公司" result = self.check_result("二类6821医用电子仪器设备", 0) self.assertEqual(result, "江苏中惠医疗科技股份有限公司", "错误————%s" % goal) @getimage def test_CGS_SSZJY_0015(self): '''查公司-搜索中间页支持搜索范围-商标''' log.info(self.test_CGS_SSZJY_0015.__doc__) goal = "输入商标名称能搜索到公司" result = self.check_result("天眼辣", 0) self.assertEqual(result, "北京金堤科技有限公司", "错误————%s" % goal) @getimage def test_CGS_SSZJY_0016(self): '''查公司-搜索中间页支持搜索范围-专利''' log.info(self.test_CGS_SSZJY_0016.__doc__) goal = "输入专利名称能搜索到公司" result = self.check_result("软基处理中塑料排水板的锚固装置", 0) self.assertEqual(result, "中国二十冶集团有限公司", "错误————%s" % goal) @getimage def test_CGS_SSZJY_0017(self): '''查公司-搜索中间页支持搜索范围-股东/董监高''' log.info(self.test_CGS_SSZJY_0017.__doc__) goal = "输入股东/高管名称能搜索到公司" result = self.check_result("朱永贵", 0) self.assertEqual(result, "中国二十冶集团有限公司", "错误————%s" % goal) @getimage def test_CGS_SSZJY_0018(self): '''查公司-搜索中间页支持搜索范围-项目''' log.info(self.test_CGS_SSZJY_0018.__doc__) goal = "输入项目名称能搜索到公司" result = self.check_result("蘑菇街", 0) self.assertEqual(result, "杭州卷瓜网络有限公司", "错误————%s" % goal) @getimage def test_CGS_SSZJY_0019(self): '''查公司-搜索中间页支持搜索范围-股票代码''' log.info(self.test_CGS_SSZJY_0019.__doc__) goal = "输入股票代码能搜索到公司" result = self.check_result("601800", 0) self.assertEqual(result, "中国交通建设股份有限公司", "错误————%s" % goal) @getimage def test_CGS_SSZJY_0020(self): '''查公司-搜索中间页支持搜索范围-拼音''' log.info(self.test_CGS_SSZJY_0020.__doc__) goal = "输入拼音能搜索到公司" result = self.check_result("jiaotongjianshegufen", 0) self.assertEqual(result, "中国交通建设股份有限公司", "错误————%s" % goal) @getimage def test_CGS_SSZJY_0021(self): '''查公司-搜索中间页搜索限制''' log.info(self.test_CGS_SSZJY_0021.__doc__) goal = "不输入字符进行搜索" self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.adb_send_input(By.ID, self.ELEMENT["middle_search_box"], "", self.device) # 获取toast信息 # toast:使用xpath表达式 # 不能用等待元素可见。只能用等待元素存在 toast_loc = '//*[contains(@text,"输入两个关键字")]' try: value = self.new_find_element(By.XPATH, toast_loc).text log.info('toast提示"%s"' % value) self.assertEqual("至少输入两个关键字", value,"错误————%s"%goal) except: log.error("没有获取到toast信息") goal_02 = "输入小于范围内的关键字进行搜索能正确提示" self.adb_send_input(By.ID, self.ELEMENT["middle_search_box"], "百", self.device) # 获取toast信息 # toast:使用xpath表达式 # 不能用等待元素可见。只能用等待元素存在 toast_loc_02 = '//*[contains(@text,"输入两个关键字")]' try: value_02 = self.new_find_element(By.XPATH, toast_loc_02).text log.info('toast提示"%s"' % value_02) self.assertEqual("至少输入两个关键字", value_02,"错误————%s"%goal_02) except: log.error("没有获取到toast信息") @getimage def test_CGS_SSZJY_0022(self): '''查公司-搜索中间页搜索限制''' log.info(self.test_CGS_SSZJY_0022.__doc__) goal = "输入正常范围内的关键字进行搜索能正确搜索" self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys("百度") value1 = self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).text self.assertEqual("百度", value1, "错误————%s" % goal) self.assertTrue(self.Element("为你找到"), "错误————%s" % goal) self.assertTrue(self.isElementExist(By.ID, self.ELEMENT["export_data"])) @getimage def test_CGS_SSZJY_0023(self): '''查公司-搜索中间页一键清除''' log.info(self.test_CGS_SSZJY_0023.__doc__) goal_01 = "不输入字符时不展示一键清除按钮" self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() result_01 = self.isElementExist(By.ID, self.ELEMENT["search_clean"]) self.assertFalse(result_01, "错误————%s" % goal_01) goal_02 = "输入一个字符后能正常展示“一键清除”按钮" self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys("百") result_02 = self.isElementExist(By.ID, self.ELEMENT["search_clean"]) self.assertTrue(result_02, "错误————%s" % goal_02) goal_03 = "输入关键字后点击一键清除能清空输入框内容" self.new_find_element(By.ID, self.ELEMENT["search_clean"]).click() text_03 = self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).text self.assertEqual(text_03, "输入公司名称、老板姓名、品牌名称等", "错误————%s" % goal_03) @getimage def test_CGS_SSZJY_0024(self): '''查公司-搜索中间页-键盘语音输入''' log.info(self.test_CGS_SSZJY_0024.__doc__) goal = "启动键盘时能正确展示语音输入" self.adbSend_input(self.device) self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.assertTrue(self.isElementExist(By.ID, self.ELEMENT["recognizer_title"])) value = self.new_find_element(By.ID, self.ELEMENT["recognizer_title"]).text self.assertEqual("按一下,说出公司名称或老板姓名", value, "错误---%s" % goal) @getimage def test_CGS_SSZJY_0025(self): '''查公司-搜索中间页-取消/排序展示规则''' log.info(self.test_CGS_SSZJY_0025.__doc__) goal_01 = "不输入字符时输入框右侧能正确展示" self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() text_01 = self.new_find_element(By.ID, self.ELEMENT["top_right_corner"]).text self.assertEqual(text_01, "取消", "错误————%s" % goal_01) goal_02 = "输入一个字符时输入框右侧能正确展示" self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys("百") text_02 = self.new_find_element(By.ID, self.ELEMENT["top_right_corner"]).text self.assertEqual(text_02, "取消", "错误————%s" % goal_02) goal_03 = ["输入两个字符时输入框右侧能正确展示为-排序", "输入两个字符时输入框左侧出现“返回”按钮"] self.search_clear() self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys("百度") text_03 = self.new_find_element(By.ID, self.ELEMENT["top_right_corner"]).text self.assertEqual(text_03, "排序", "错误————%s" % goal_03[0]) result_03 = self.isElementExist(By.ID, self.ELEMENT["middle_search_back"]) self.assertTrue(result_03, "错误————%s" % goal_03[1]) goal_04 = "点击取消能返回首页" self.search_clear() self.new_find_element(By.ID, self.ELEMENT["top_right_corner"]).click() test = self.isElementExist(By.ID, self.ELEMENT["banner"]) self.assertTrue(test, "错误————%s" % goal_04) @getimage def test_CGS_SSZJY_0026(self): '''查公司-搜索中间页-排序-默认排序''' log.info(self.test_CGS_SSZJY_0026.__doc__) goal_01 = "输入关键词点击排序时默认选项正确" self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys("百度") self.new_find_element(By.XPATH, self.ELEMENT["sorting"]).click() self.assertTrue(self.isElementExist(By.XPATH, self.ELEMENT["sorting"])) checkbox = self.new_find_element(By.XPATH, self.ELEMENT["default_sort_select"]) value = checkbox.get_attribute("checked") value1 = checkbox.is_selected() self.assertTrue(self.Element("默认排序"), "错误---%s" % goal_01) @getimage def test_CGS_SSZJY_0027(self): '''查公司-搜索中间页-排序-按注册资本从高到低''' log.info(self.test_CGS_SSZJY_0027.__doc__) goal = "点击排序中-按注册资本从高到低" self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys("支付宝网络技术有限公司") self.new_find_element(By.ID, self.ELEMENT["top_right_corner"]).click() self.new_find_element(By.XPATH, self.ELEMENT["sort_registered_capital_high"]).click() text_01 = self.new_find_elements(By.ID, self.ELEMENT["search_result_registered_capital"])[0].text text_02 = self.new_find_elements(By.ID, self.ELEMENT["search_result_registered_capital"])[1].text num_01 = re.findall(r"\d+\.?\d*", text_01)[0] # 提取数字 num_02 = re.findall(r"\d+\.?\d*", text_02)[0] type_01 = float(num_01) type_02 = float(num_02) self.assertLess(type_02, type_01, "错误————%s" % goal) @getimage def test_CGS_SSZJY_0028(self): '''查公司-搜索中间页-排序-按注册资本从低到高''' log.info(self.test_CGS_SSZJY_0028.__doc__) goal = "点击排序中-按注册资本从低到高" self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys("天眼查科技有限公司") self.new_find_element(By.ID, self.ELEMENT["top_right_corner"]).click() self.new_find_element(By.XPATH, self.ELEMENT["sort_registered_capital_low"]).click() text_01 = self.new_find_elements(By.ID, self.ELEMENT["search_result_registered_capital"])[0].text text_02 = self.new_find_elements(By.ID, self.ELEMENT["search_result_registered_capital"])[1].text num_01 = re.findall(r"\d+\.?\d*", text_01)[0] num_02 = re.findall(r"\d+\.?\d*", text_02)[0] type_01 = float(num_01) type_02 = float(num_02) self.assertLess(type_01, type_02, "错误————%s" % goal) @getimage def test_CGS_SSZJY_0029(self): '''查公司-搜索中间页-排序-按成立日期从早到晚/按成立日期从晚到早''' log.info(self.test_CGS_SSZJY_0029.__doc__) goal_01 = "输入关键词点击排序中-按成立日期从早到晚" self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() self.new_find_element(By.ID, self.ELEMENT["middle_search_box"]).send_keys("百度网讯") self.new_find_element(By.XPATH, self.ELEMENT["sorting"]).click() self.new_find_element(By.XPATH, self.ELEMENT["early_and_late"]).click() time.sleep(1) value1 = self.new_find_elements(By.ID, self.ELEMENT["setup_times"])[0].text value2 = self.new_find_elements(By.ID, self.ELEMENT["setup_times"])[1].text self.assertLessEqual(value1, value2, "错误---%s" % goal_01) goal_02 = "输入关键词点击排序中-按成立日期从晚到早" self.new_find_element(By.XPATH, self.ELEMENT["sorting"]).click() self.new_find_element(By.XPATH, self.ELEMENT["late_and_early"]).click() value1 = self.new_find_elements(By.ID, self.ELEMENT["setup_times"])[0].text value2 = self.new_find_elements(By.ID, self.ELEMENT["setup_times"])[1].text self.assertGreaterEqual(value1, value2, "错误---%s" % goal_02) @getimage def test_CGS_ZSSSY_0030(self): '''查公司-搜索首页-扫一扫''' log.info(self.test_CGS_ZSSSY_0030.__doc__) goal_01 = "未登录点击首页搜索框扫一扫弹出登陆页面" login_status = self.is_login() if login_status == True: self.logout() else: pass self.new_find_element(By.ID, self.ELEMENT["scan"]).click() text = self.new_find_element(By.ID, self.ELEMENT["login_title"]).text self.assertEqual(text, "短信验证码登录", "错误————%s" % goal_01) goal_02 = "已登陆点击首页搜索框扫一扫" account = self.account.get_account() self.login(account,self.account.get_pwd()) text_02 = self.new_find_element(By.ID, self.ELEMENT["sweep_qrcode"]).text self.assertEqual(text_02, "扫码", "错误————%s" % goal_02) self.account.release_account(account)
class Search_relationTest(MyTest, Operation): """查关系_02""" a = Read_Ex() ELEMENT = a.read_excel("Search_relation") account = Account() phone_vip = account.get_account("vip") phone_normal = account.get_account() @classmethod def setUpClass(cls): super().setUpClass() cls.sift_opera = SiftOperation(cls.driver, cls.ELEMENT) @classmethod def tearDownClass(cls): cls.account.release_account(cls.phone_vip, "vip") cls.account.release_account(cls.phone_normal) super().tearDownClass() def check_vip_normal(self, index=None): """ 校验非vip态、登陆态 :param index: 1:未登陆态; 2:非VIP :return: """ Key = ["passwd_login", "tv_top_title"] Value = ["passwd_login_text", "tv_top_title_text"] self.sift_opera.search_key(2) self.new_find_element(By.ID, self.ELEMENT["select_more"]).click() result1 = self.ELEMENT["open_vip_ll_text"] == self.new_find_element( By.ID, self.ELEMENT["open_vip_ll"]).text self.new_find_element(By.ID, self.ELEMENT["open_vip_ll"]).click() if index == 1: log.info("校验-未登陆态") result2 = self.ELEMENT[Value[index - 1]] == self.new_find_element( By.XPATH, self.ELEMENT[Key[index - 1]]).text else: log.info("校验-非VIP") result2 = self.ELEMENT[Value[index - 1]] == self.new_find_element( By.ID, self.ELEMENT[Key[index - 1]]).text self.driver.keyevent(4) selectTarget, selectText = self.sift_opera.get_key( "more_ssfw_title", "more_ssfw", 1) if index == 1: result3 = self.isElementExist(By.XPATH, self.ELEMENT[Key[index - 1]]) else: result3 = self.isElementExist(By.XPATH, self.ELEMENT[Key[index - 1]]) self.sift_opera.reset(selectTarget) self.sift_opera.get_key("more_lxfs_title", "more_lxfs", 1) if index == 1: passwd_login = self.new_find_element( By.XPATH, self.ELEMENT["passwd_login"]).text result4 = self.ELEMENT["passwd_login_text"] == passwd_login self.new_find_element(By.ID, self.ELEMENT["title_back"]).click() else: middle_title = self.new_find_element( By.ID, self.ELEMENT["tv_middle_title"]).text result4 = self.ELEMENT["tv_middle_title_text"] == middle_title self.driver.keyevent(4) back_max = 30 back_cnt = 0 while not self.isElementExist(By.ID, self.ELEMENT["search_relation"]): self.driver.keyevent(4) back_cnt += 1 if back_cnt > back_max: break return result1, result2, result3, result4 def rel_detail(self): self.sift_opera.search_key(2) result1 = self.isElementExist(By.ID, self.ELEMENT["select_more"]) self.new_find_element(By.ID, self.ELEMENT["select_more"]).click() result2 = self.isElementExist(By.ID, self.ELEMENT["open_vip_ll"]) result3 = self.isElementExist(By.ID, self.ELEMENT["bt_reset"]) self.new_find_element(By.ID, self.ELEMENT["select_more"]).click() t_xpath = "{}/android.widget.RelativeLayout/android.widget.TextView".format( self.ELEMENT["from_target_item"]) company_name = self.new_find_element(By.XPATH, t_xpath).text self.new_find_element(By.XPATH, self.ELEMENT["from_target_item"]).click() title_tag = self.new_find_element(By.ID, self.ELEMENT["app_title_name"]).text result4 = title_tag == "企业详情" d_xpath = "{}/android.widget.TextView".format( self.ELEMENT["lv_firm_detail"]) tarName = self.new_find_element(By.XPATH, d_xpath).text result5 = tarName == company_name f_xpath = "{}/android.widget.ImageView".format( self.ELEMENT["lv_firm_detail"]) self.new_find_element(By.XPATH, f_xpath).click() s_xpath = "{}/android.widget.RelativeLayout/android.widget.TextView".format( self.ELEMENT["sky_canvas"]) comName = self.new_find_element(By.XPATH, s_xpath).text result6 = comName == company_name back_max = 30 back_cnt = 0 while not self.isElementExist(By.ID, self.ELEMENT["search_relation"]): self.driver.keyevent(4) back_cnt += 1 if back_cnt > back_max: break return result1, result2, result3, result4, result5, result6 @getimage def test_001_cgx_vip_p0(self): """未登陆、非VIP校验""" log.info(self.test_001_cgx_vip_p0.__doc__) try: result1, result2, result3, result4 = self.check_vip_normal(1) # 断言 - 更多筛选下拉框,展示vip入口 self.assertTrue(result1, "===失败-获取更多筛选下拉框vip入口失败===") # 断言 - 更多筛选下拉框,点击vip入口 self.assertTrue(result2, "===失败-未登陆态,更多筛选下拉框vip入口,拉起登陆页失败===") # 断言 - 更多筛选下拉框,点击普通筛选项 self.assertFalse(result3, "===失败-未登陆态,更多筛选下拉框非vip筛选项错误拉起登陆===") # 断言 - 更多筛选下拉框,点击高级筛选项 self.assertTrue(result4, "===失败-拉起登陆页失败===") # 判断非vip self.sift_opera.login_normal(self.phone_normal, self.account.get_pwd()) result1, result2, result3, result4 = self.check_vip_normal(2) # 断言 - 更多筛选下拉框,点击vip入口 self.assertTrue(result2, "===失败-非vip,更多筛选下拉框vip入口,拉起登陆页失败===") # 断言 - 更多筛选下拉框,点击普通筛选项 self.assertFalse(result3, "===失败-非vip,更多筛选下拉框非vip筛选项,错误限制===") # 断言 - 更多筛选下拉框,点击高级筛选项 self.assertTrue(result4, "===失败-弹出vip弹窗失败===") except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_002_cgx_xqy_p0(self): """查关系-搜索结果页,公司详情""" log.info(self.test_002_cgx_xqy_p0.__doc__) try: self.sift_opera.login_vip(self.phone_vip, self.account.get_pwd()) result1, result2, result3, result4, result5, result6 = self.rel_detail( ) # 断言-输入关键词,展示更多筛选按钮 self.assertTrue(result1, "===失败-更多筛选按钮未展示===") # 断言-更多筛选下拉展示 self.assertFalse(result2, "===失败-vip用户,高级筛选下拉框未隐藏vip入口===") self.assertTrue(result3, "===失败-更多筛选下拉展示失败===") # 断言-查关系搜索列表,进入企业详情 self.assertTrue(result4, "===失败-进入查关系-企业详情选取节点页错误===") self.assertTrue(result5, "===失败-查关系公司详情页,公司名错误===") # # 断言-通过查关系企业详情页,获取关系图节点 self.assertTrue(result6, "===失败-通过查关系公司详情页,获取节点失败===") except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception
class Search_bossTest3(MyTest, Operation): """查老板_03""" a = Read_Ex() ELEMENT = a.read_excel('Search_boss') def close_guide(self): loc = (By.ID, 'com.tianyancha.skyeye:id/btn_close_guide') try: e = WebDriverWait(self.driver, 2, 0.5).until(EC.presence_of_element_located(loc)) e.click() except: pass @getimage def test_022_CLB_SYZJY_p0(self): """搜索中间页-点击最近搜索""" log.info(self.test_022_CLB_SYZJY_p0.__doc__) try: self.new_find_element(By.ID, self.ELEMENT['search_boss']).click() self.new_find_element(By.ID, self.ELEMENT['search_box']).click() a = self.new_find_element(By.ID, self.ELEMENT['Recent_search']) if a is None: self.adb_send_input(By.ID, self.ELEMENT['search_box1'], '马云', self.device) log.info("输入搜索词:{}".format("马云")) self.new_find_element(By.ID, self.ELEMENT['clean_button']).click() name = self.new_find_elements( By.XPATH, self.ELEMENT['Search_records'])[0].text self.new_find_elements( By.XPATH, self.ELEMENT['Search_records'])[0].click() name1 = self.new_find_element(By.ID, self.ELEMENT['search_box1']).text else: name = self.new_find_elements( By.XPATH, self.ELEMENT['Search_records'])[0].text self.new_find_elements( By.XPATH, self.ELEMENT['Search_records'])[0].click() name1 = self.new_find_element(By.ID, self.ELEMENT['search_box1']).text self.assertEqual(name, name1, '最近搜索与搜索框老板名称不一致') except AssertionError: raise self.failureException() except Exception as e: print(e) raise Exception @getimage def test_023_CLB_SYZJY_p0(self): """搜索中间页-点击最近浏览-登录""" log.info(self.test_023_CLB_SYZJY_p0.__doc__) try: a = self.is_login() if a: pass else: self.login(11099990135, 'ef08beca') self.new_find_element(By.ID, self.ELEMENT['search_boss']).click() self.new_find_element(By.ID, self.ELEMENT['search_box']).click() a = self.new_find_element(By.ID, self.ELEMENT['Recent_browse']) if a is None: self.adb_send_input(By.ID, self.ELEMENT['search_box1'], '马云', self.device) self.new_find_elements(By.ID, self.ELEMENT['all_company'])[1].click() loc = (By.ID, self.ELEMENT['first_btn']) try: e = WebDriverWait(self.driver, 1, 0.5).until( EC.presence_of_element_located(loc)) e.click() except Exception as e: print(e, "没有首次弹框") pass self.new_find_element(By.ID, self.ELEMENT['people_back']).click() self.new_find_element(By.ID, self.ELEMENT['clean_button']).click() self.new_find_elements( By.XPATH, self.ELEMENT['Recent_records'])[0].click() else: self.new_find_elements( By.XPATH, self.ELEMENT['Recent_records'])[0].click() loc = (By.ID, self.ELEMENT['first_btn']) try: e = WebDriverWait(self.driver, 1, 0.5).until( EC.presence_of_element_located(loc)) e.click() except Exception as e: print(e, '没有首次弹框') pass self.new_find_element(By.ID, self.ELEMENT['name']) value = self.new_find_element(By.ID, self.ELEMENT['name']).text self.assertTrue(self.Element('人员详情')) self.assertIsNotNone(value) except AssertionError: raise self.failureException() except Exception as e: print(e) raise Exception @getimage def test_024_CLB_SYZJY_p0(self): """搜索中间页-点击最近浏览-登录""" log.info(self.test_024_CLB_SYZJY_p0.__doc__) try: a = self.is_login() if a: self.logout() else: pass self.new_find_element(By.ID, self.ELEMENT['search_boss']).click() self.new_find_element(By.ID, self.ELEMENT['search_box']).click() b = self.new_find_element(By.ID, self.ELEMENT['Browsing_clean']) if b is None: self.adb_send_input(By.ID, self.ELEMENT['search_box1'], '马云', self.device) self.new_find_elements(By.ID, self.ELEMENT['all_company'])[1].click() self.driver.keyevent(4) self.new_find_element(By.ID, self.ELEMENT['clean_button']).click() self.new_find_elements( By.XPATH, self.ELEMENT['Recent_records'])[0].click() time.sleep(0.5) else: self.new_find_elements( By.XPATH, self.ELEMENT['Recent_records'])[0].click() time.sleep(0.5) a = self.isElementExist(By.ID, self.ELEMENT['login_bs']) self.assertTrue(a, '登录页标识-->页面元素不存在') except AssertionError: raise self.failureException() except Exception as e: print(e) raise Exception @getimage def test_025_CLB_SYdb_p0(self): """ 首页底部-查老板,未登录 点击热门人物可以查看人详情 点击热门人物合作伙伴拉起登录 点击搜索框跳转查老板搜索中间页 """ log.info(self.test_025_CLB_SYdb_p0.__doc__) try: a = self.is_login() if a: self.logout() else: pass self.new_find_element(By.ID, self.ELEMENT['Homepage_2']).click() # 点击热门人物 self.new_find_element(By.XPATH, self.ELEMENT['sensation_1']).click() loc = (By.ID, self.ELEMENT['first_btn']) try: e = WebDriverWait(self.driver, 1, 0.5).until( EC.presence_of_element_located(loc)) e.click() except Exception as e: print(e, '没有首次弹框') pass time.sleep(1) self.assertTrue(self.Element('人员详情')) self.driver.keyevent(4) # 点击搜索框 self.new_find_element(By.ID, self.ELEMENT['homepage_2_search']).click() time.sleep(0.5) self.assertTrue(self.Element(self.ELEMENT['found_boss'])) self.driver.keyevent(4) # 点击热门人物合作伙伴 self.new_find_elements(By.ID, self.ELEMENT['partners'])[0].click() time.sleep(0.5) a = self.isElementExist(By.ID, self.ELEMENT['login_bs']) self.assertTrue(a, '登录页标识-->页面元素不存在') # 返回首页 self.driver.keyevent(4) self.new_find_element(By.ID, self.ELEMENT['Homepage_1']).click() except AssertionError as ae: print(ae) raise self.failureException() except Exception as e: print(e) @getimage def test_026_CLB_SYdb_p0(self): """ 首页底部-查老板,登录 点击热门人物可以查看人详情 点击热门人物合作伙伴拉起登录 点击搜索框跳转查老板搜索中间页 """ log.info(self.test_026_CLB_SYdb_p0.__doc__) try: a = self.is_login() if a: pass else: self.login(11099990135, 'ef08beca') self.new_find_element(By.ID, self.ELEMENT['Homepage_2']).click() # 点击热门人物 self.new_find_element(By.XPATH, self.ELEMENT['sensation_1']).click() loc = (By.ID, self.ELEMENT['first_btn']) try: e = WebDriverWait(self.driver, 1, 0.5).until( EC.presence_of_element_located(loc)) e.click() except Exception as e: print(e, '没有首次弹框') pass self.assertTrue(self.Element('人员详情')) self.driver.keyevent(4) # 点击搜索框 self.new_find_element(By.ID, self.ELEMENT['homepage_2_search']).click() time.sleep(0.5) self.assertTrue(self.Element(self.ELEMENT['found_boss'])) self.driver.keyevent(4) # 点击热门人物合作伙伴 name = self.new_find_elements(By.XPATH, self.ELEMENT['partners1'])[0].text log.info('热门合作伙伴:{}'.format(name)) self.new_find_elements(By.ID, self.ELEMENT['partners'])[0].click() time.sleep(3) name1 = self.new_find_element(By.ID, self.ELEMENT['name']).text print(name1) self.assertTrue(self.Element('人员详情')) self.assertIn(name, name1, '老板名称不对应') # 返回首页 self.driver.keyevent(4) self.new_find_element(By.ID, self.ELEMENT['Homepage_1']).click() except AssertionError: raise self.failureException() except Exception as e: print(e) raise Exception
class Company_detail_baseinfo(MyTest, Operation): """公司详情页_股东/高管""" a = Read_Ex() ELEMENT = a.read_excel("company_detail_xu") account = Account() phone_vip = account.get_account("vip") @classmethod def setUpClass(cls): super().setUpClass() cls.sift_opera = SiftOperation(cls.driver, cls.ELEMENT) @classmethod def tearDownClass(cls): cls.account.release_account(cls.phone_vip, 'vip') super().tearDownClass() def detail_opera(self, *opera, num=1, tag=1): self.new_find_element(*opera).click() if tag == 1: result = self.isElementExist(By.ID, self.ELEMENT["btv_title"]) else: result = self.new_find_element(By.ID, self.ELEMENT["app_title_name"]).text if num == 0: result = self.isElementExist(By.ID, self.ELEMENT["radio_person_detail"]) elif num == 2: result = self.isElementExist(By.ID, self.ELEMENT["radio_firm_detail"]) self.driver.keyevent(4) if num == 0: self.new_find_element(By.ID, self.ELEMENT["iv_score"]).click() return result def test_001_gsxx_jcxx_p0(self): """公司基本信息,未登录态校验""" log.info(self.test_001_gsxx_jcxx_p0.__doc__) try: self.sift_opera.into_company(company="万科企业股份有限公司") self.new_find_element(By.ID, self.ELEMENT["tv_des"]).click() self.new_find_element(By.ID, self.ELEMENT["tv_des"]).click() result = self.detail_opera(By.ID, self.ELEMENT["tv_des_sub_value_1"]) self.assertTrue(result, "===法定代表人,未登录限制失败===") result = self.detail_opera(By.XPATH, self.ELEMENT["rv_riskinfo_item1"]) self.assertTrue(result, "===天眼风险-自身风险,未登录限制失败===") result = self.detail_opera(By.XPATH, self.ELEMENT["rv_riskinfo_item2"]) self.assertTrue(result, "===天眼风险-周边风险,未登录限制失败===") result = self.detail_opera(By.XPATH, self.ELEMENT["rv_riskinfo_item3"]) self.assertTrue(result, "===天眼风险-预警信息,未登录限制失败===") result = self.detail_opera(By.ID, self.ELEMENT["tv_base_info_phone"]) self.assertTrue(result, "===电话,未登录限制失败===") result = self.detail_opera(By.ID, self.ELEMENT["tv_base_info_address"], tag=0) self.assertEqual("公司地图", result, "===点击「地址」,跳转地图页失败===") self.driver.keyevent(4) self.new_find_element( By.ID, self.ELEMENT["search_input_edit"]).send_keys("上海彩亿信息技术有限公司") self.new_find_element( By.XPATH, '//*[@class="android.widget.TextView" and @text="上海彩亿信息技术有限公司"]' ).click() result = self.detail_opera(By.XPATH, self.ELEMENT["tv_shareholder_1"]) self.assertTrue(result, "===自然人股东,未登录限制失败===") result = self.detail_opera(By.XPATH, self.ELEMENT["tv_staff_1"]) self.assertTrue(result, "===自然人股东,未登录限制失败===") result = self.detail_opera(By.ID, self.ELEMENT["tv_shareholder_count"], tag=0) self.assertEqual("股东信息", result, "===失败-非上市公司,点击「股东」未进入「股东信息页」===") result = self.detail_opera(By.ID, self.ELEMENT["tv_staff_count"], tag=0) self.assertEqual("主要人员", result, "===失败-非上市公司,点击「高管」未进入「主要人员页」===") except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) def test_002_gsxx_jcxx_p0(self): """公司详情页,登陆vip账号""" log.info(self.test_002_gsxx_jcxx_p0.__doc__) try: self.sift_opera.login_vip(self.phone_vip, self.account.get_pwd()) self.sift_opera.into_company(company="万科企业股份有限公司") result = self.detail_opera(By.ID, self.ELEMENT["tv_des_sub_value_1"], num=0) self.assertTrue(result, "===登陆态,跳转「法定代表人」详情页失败===") result = self.detail_opera(By.ID, self.ELEMENT["tv_claim"], tag=0) self.assertEqual("选择认证套餐", result, "===评分弹出,认证入口,跳转失败===") self.new_find_element(By.ID, self.ELEMENT["tv_base_info_phone"]).click() delte_cancel = self.new_find_element( By.ID, self.ELEMENT["delte_cancel"]).text self.assertEqual("修改电话", delte_cancel, "===电话弹窗,弹出失败===") result = self.detail_opera(By.ID, self.ELEMENT["delte_cancel"], tag=0) self.assertEqual("选择认证套餐", result, "===电话弹窗,修改电话,跳转失败===") result = self.detail_opera(By.ID, self.ELEMENT["iv_claim_label"], tag=0) self.assertEqual("选择认证套餐", result, "===登录态点击「我要认证」标签,跳转失败===") except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) def test_003_gsxx_gd_p0(self): """公司详情页,股东/高管""" log.info(self.test_003_gsxx_gd_p0.__doc__) try: self.sift_opera.into_company(company="万科企业股份有限公司") # 股东 holder = self.isElementExist(By.ID, self.ELEMENT["holder_type_iv"]) self.assertTrue(holder, "===大股东标签缺失===") result = self.detail_opera(By.ID, self.ELEMENT["tv_shareholder_count"], tag=0) self.assertEqual("十大股东", result, "===失败-上市公司,点击「股东」未进入「十大股东页」===") result = self.detail_opera(By.XPATH, self.ELEMENT["tv_shareholder_1"], num=2) self.assertTrue(result, "===非自然人股东,跳转详情页错误===") # 高管 result = self.detail_opera(By.ID, self.ELEMENT["tv_staff_count"], tag=0) self.assertEqual("高管信息", result, "===失败-上市公司,点击「高管」未进入「高管信息页」===") except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e))
class Company_detail_Test_wlx_2(MyTest, Operation): """未登录用户进入公司详情页历史信息校验""" a = Read_Ex() ELEMENT = a.read_excel("company_detail_wlx") def go_company_detail(self, company_name, index=0): self.search_company(company_name) self.new_find_elements( By.XPATH, self.ELEMENT["company_name_search_result_list"])[index].click() @getimage def test_history_info_001(self): log.info(self.test_history_info_001.__doc__) try: self.go_company_detail("上海毛巾十五厂") self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["history_moduel"]) self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["his_dcdy"]) self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["his_sbxx"], click=True) self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["login_new"]), "进入历史信息-商标信息未调起登录") except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_history_info_002(self): log.info(self.test_history_info_002.__doc__) try: self.go_company_detail("乐视控股(北京)有限公司") self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["history_moduel"]) self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["his_sxxx"], click=True) self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["login_new"]), "进入历史信息-失信信息未调起登录") self.driver.keyevent(4) self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["his_zbaj"], click=True) self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["login_new"]), "进入历史信息-终本案件未调起登录") self.driver.keyevent(4) self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["his_jyyc"], click=True, check_cover=True) self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["login_new"]), "进入历史信息-经营异常未调起登录") except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_history_info_003(self): log.info(self.test_history_info_003.__doc__) try: self.go_company_detail("北京小桔科技有限公司") self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["history_moduel"]) self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["his_xzxk"], click=True, check_cover=True) self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["login_new"]), "进入历史信息-行政许可未调起登录") except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_history_info_004(self): log.info(self.test_history_info_004.__doc__) try: self.go_company_detail("湖南盛华夏矿业投资有限公司") self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["history_moduel"]) self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["his_xzxfl"], click=True) self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["login_new"]), "进入历史信息-限制消费令未调起登录", ) self.driver.keyevent(4) self.swipe_up_while_ele_located(By.XPATH, self.ELEMENT["his_sfxz"], click=True) self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["login_new"]), "进入历史信息-司法协助未调起登录") except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e
class Company_Foundation_1(MyTest, Operation): """基金会-企业背景""" a = Read_Ex() ELEMENT = a.read_excel("Company_foundation") def enter_official_information(self, company_name): """ 首页搜索公司名进入到公司官方信息页 company_name : 公司名称 :return: company_name 官方信息页 """ self.company_name = company_name self.new_find_element(By.ID, "com.tianyancha.skyeye:id/home_tab1").click() self.new_find_element( By.ID, "com.tianyancha.skyeye:id/txt_search_copy1" ).click() self.new_find_element( By.ID, "com.tianyancha.skyeye:id/search_input_et" ).send_keys(self.company_name) self.new_find_elements(By.ID, "com.tianyancha.skyeye:id/tv_company_name")[ 0 ].click() log.info("进入公司 {} 官方信息页".format(self.company_name)) @getimage def test_001_foundation_djxx_p0(self): """ 基金会-企业背景-登记信息 """ log.info(self.test_001_foundation_djxx_p0.__doc__) try: self.enter_official_information("上海文化发展基金会") # 进入登记信息模块 self.new_find_element(By.XPATH, self.ELEMENT["registration"]).click() title_name = self.new_find_element(By.ID, self.ELEMENT["title_name"]).text self.assertEqual(self.company_name, title_name, msg="登记信息跟所属公司不对应") # 获取基金会英文名称 foundation_englishName = self.new_find_element( By.ID, self.ELEMENT["foundation_englishName"] ).text log.info("基金会英文名称:{}".format(foundation_englishName)) self.assertFalse(is_contain_chinese(foundation_englishName)) # 获取成立日期 foundation_establish_time = self.new_find_element( By.ID, self.ELEMENT["foundation_establish_time"] ).text log.info("成立日期:{}".format(foundation_establish_time)) a = check_time(foundation_establish_time, is_compare=True) self.assertTrue(a, msg="成立日期不符合规范") # 获取评估等级 foundation_grade = self.new_find_element( By.ID, self.ELEMENT["foundation_grade"] ).text log.info("评估等级:{}".format(foundation_grade)) grade = check_Assessment_level(foundation_grade) print(grade) self.assertTrue(grade) # 原始基数金额 foundation_original_amount = self.new_find_element( By.ID, self.ELEMENT["foundation_original_amount"] ).text log.info("原始基金数额:{}".format(foundation_original_amount)) b = is_bill_available(foundation_original_amount) self.assertTrue(b, msg="原始基金数额展示不符合规则") # 统一社会信用代码 foundation_credit_code = self.new_find_element( By.ID, self.ELEMENT["foundation_credit_code"] ).text log.info("统一社会信用代码:{}".format(foundation_credit_code)) U = UnifiedSocialCreditIdentifier() c = U.check_social_credit_code(foundation_credit_code) self.assertTrue(c, msg="统一社会信用代码-不符合规则") # 组织机构代码 foundation_org_code = self.new_find_element( By.ID, self.ELEMENT["foundation_org_code"] ).text log.info("组织机构代码:{}".format(foundation_org_code)) d = U.check_organization_code(foundation_org_code) self.assertTrue(d, msg="组织机构代码-不符合规则") # 业务主管单位 foundation_business_unit = self.new_find_element( By.ID, self.ELEMENT["foundation_business_unit"] ).text log.info("业务主管单位:{}".format(foundation_business_unit)) a = is_all_zh(foundation_business_unit) self.assertTrue(a) # 登记部门 foundation_department = self.new_find_element( By.ID, self.ELEMENT["foundation_department"] ).text log.info("登记部门:{}".format(foundation_department)) a = is_all_zh(foundation_department) self.assertTrue(a) # 理事长 foundation_legal = self.new_find_element( By.ID, self.ELEMENT["foundation_legal"] ).text log.info("理事长:{}".format(foundation_legal)) a = is_all_zh(foundation_legal) self.assertTrue(a) # 秘书长 foundation_secretary = self.new_find_element( By.ID, self.ELEMENT["foundation_secretary"] ).text log.info("秘书长:{}".format(foundation_secretary)) a = is_all_zh(foundation_secretary) self.assertTrue(a) # 对外联系人姓名 foundation_contact_name = self.new_find_element( By.ID, self.ELEMENT["foundation_contact_name"] ).text log.info("对外联系人姓名:{}".format(foundation_contact_name)) a = is_all_zh(foundation_contact_name) self.assertTrue(a) # 联系人职务 foundation_contact_position = self.new_find_element( By.ID, self.ELEMENT["foundation_contact_position"] ).text log.info("联系人职务:{}".format(foundation_contact_position)) a = is_all_zh(foundation_contact_position) self.assertTrue(a) # 联系人固话 foundation_phone = self.new_find_element( By.ID, self.ELEMENT["foundation_phone"] ).text log.info("联系人固话:{}".format(foundation_contact_position)) # TODO 联系人固话规则校验 # 联系人传真 foundation_fax = self.new_find_element( By.ID, self.ELEMENT["foundation_fax"] ).text log.info("联系人传真:{}".format(foundation_fax)) # TODO 联系人传真规则校验 # 联系人电子邮箱 foundation_email = self.new_find_element( By.ID, self.ELEMENT["foundation_email"] ).text log.info("联系人电子邮箱:{}".format(foundation_email)) a = check_email(foundation_email) self.assertTrue(a) # 负责人中国家工作人员数 number_of_national_staff_in_charge = self.new_find_element( By.ID, self.ELEMENT["number_of_national_staff_in_charge"] ).text log.info("负责人中国家工作人员数:{}".format(number_of_national_staff_in_charge)) a = check_num(number_of_national_staff_in_charge) self.assertTrue(a) self.swipeUp() # 负责人中担任过省部级工作人员数 number_of_provincial = self.new_find_element( By.ID, self.ELEMENT["number_of_provincial"] ).text log.info("负责人中担任过省部级工作人员数:{}".format(number_of_provincial)) a = check_num(number_of_provincial) self.assertTrue(a) # 全职员工数量 foundation_employeeNumber = self.new_find_element( By.ID, self.ELEMENT["foundation_employeeNumber"] ).text log.info("全职员工数量:{}".format(foundation_employeeNumber)) a = check_num(foundation_employeeNumber) self.assertTrue(a) # 志愿者数量 foundation_volunteer_number = self.new_find_element( By.ID, self.ELEMENT["foundation_volunteer_number"] ).text log.info("志愿者数量:{}".format(foundation_volunteer_number)) a = check_num(foundation_volunteer_number) self.assertTrue(a) # 数据来源 data_sources = self.new_find_element( By.ID, self.ELEMENT["data_sources"] ).text log.info("数据来源:{}".format(data_sources)) a = check_dataSource(data_sources) self.assertTrue(a) # 基金会范围 foundation_scope = self.new_find_element( By.ID, self.ELEMENT["foundation_scope"] ).text log.info("基金会范围:{}".format(foundation_scope)) a = check_scope(foundation_scope) self.assertTrue(a) # 关注领域 foundation_field = self.new_find_element( By.ID, self.ELEMENT["foundation_field"] ).text log.info("关注领域:{}".format(foundation_field)) a = check_field(foundation_field) self.assertTrue(a) # 专项基金数 number_of_special_funds = self.new_find_element( By.ID, self.ELEMENT["number_of_special_funds"] ).text log.info("专项基金数:{}".format(number_of_special_funds)) a = check_num(number_of_special_funds) self.assertTrue(a) # 机构官网 foundation_website = self.new_find_element( By.ID, self.ELEMENT["foundation_website"] ).text log.info("机构官网:{}".format(foundation_website)) # 基金会地址 foundation_address = self.new_find_element( By.ID, self.ELEMENT["foundation_address"] ).text log.info("基金会地址:{}".format(foundation_address)) # 邮政编码 foundation_postal_code = self.new_find_element( By.ID, self.ELEMENT["foundation_postal_code"] ).text log.info("邮政编码:{}".format(foundation_postal_code)) a = check_post_code(foundation_postal_code) self.assertTrue(a) # 宗旨 foundation_purpose = self.new_find_element( By.ID, self.ELEMENT["foundation_purpose"] ).text log.info("宗旨:{}".format(foundation_purpose)) # 业务范围 foundation_business_scope = self.new_find_element( By.ID, self.ELEMENT["foundation_business_scope"] ).text log.info("业务范围:{}".format(foundation_business_scope)) # 优惠资格类型 qualification_type = self.new_find_element( By.ID, self.ELEMENT["qualification_type"] ).text log.info("优惠资格类型:{}".format(qualification_type)) a = check_preferentialQualificationType(qualification_type) self.assertTrue(a) except AssertionError: raise self.failureException() except Exception as e: log.error(e) raise Exception @getimage def test_002_foundation_lsh_p0(self): """ 基金会-企业背景-理事会 """ log.info(self.test_002_foundation_lsh_p0.__doc__) try: self.enter_official_information("上海文化发展基金会") # 获取理事会count count_value = self.new_find_element( By.XPATH, self.ELEMENT["council_count"] ).text log.info("理事会count:{}".format(count_value)) # 进入理事会 self.new_find_element(By.XPATH, self.ELEMENT["council"]).click() page_title = self.new_find_element(By.ID, self.ELEMENT["title_name"]).text self.assertEqual(page_title, "理事会", msg="页面title不一致") # 姓名 names = self.new_find_elements(By.ID, self.ELEMENT["people_name"]) name = random.choice(names).text log.info("姓名:{}".format(name)) a = is_all_zh(name) self.assertTrue(a) # 理事会职务 council_member_positions = self.new_find_elements( By.ID, self.ELEMENT["council_member_position"] ) council_member_position = random.choice(council_member_positions).text log.info("理事会职务:{}".format(council_member_position)) a = is_all_zh(council_member_position) self.assertTrue(a) # 性别 genders = self.new_find_elements(By.ID, self.ELEMENT["gender"]) gender = random.choice(genders).text log.info("性别:{}".format(gender)) a = check_gender(gender) self.assertTrue(a) # 年度会议次数 meeting_counts = self.new_find_elements( By.ID, self.ELEMENT["meeting_count"] ) meeting_count = random.choice(meeting_counts).text log.info("年度会议次数:{}".format(meeting_count)) a = check_num(meeting_count) self.assertTrue(a) # 工作单位及职务 comp_positions = self.new_find_elements( By.ID, self.ELEMENT["comp_position"] ) comp_position = random.choice(comp_positions).text log.info("工作单位及职务:{}".format(comp_position)) except AssertionError: raise self.failureException() except Exception as e: log.error(e) raise Exception @getimage def test_003_foundation_jsh_p0(self): """ 基金会-企业背景-监事会 """ log.info(self.test_003_foundation_jsh_p0.__doc__) try: self.enter_official_information("上海文化发展基金会") # 获取理事会count count_value = self.new_find_element( By.XPATH, self.ELEMENT["supervisors_count"] ).text log.info("监事会count:{}".format(count_value)) # 进入监事会 self.new_find_element(By.XPATH, self.ELEMENT["supervisors"]).click() page_title = self.new_find_element(By.ID, self.ELEMENT["title_name"]).text self.assertEqual(page_title, "监事会", msg="页面title不一致") # 姓名 supervisor_member_names = self.new_find_elements( By.ID, self.ELEMENT["supervisor_member_name"] ) supervisor_member_name = random.choice(supervisor_member_names).text log.info("姓名:{}".format(supervisor_member_name)) a = is_all_zh(supervisor_member_name) self.assertTrue(a) # 性别 supervisor_member_genders = self.new_find_elements( By.ID, self.ELEMENT["supervisor_member_gender"] ) supervisor_member_gender = random.choice(supervisor_member_genders).text log.info("性别:{}".format(supervisor_member_gender)) a = check_gender(supervisor_member_gender) self.assertTrue(a) # 年度会议次数 supervisor_member_meeting_counts = self.new_find_elements( By.ID, self.ELEMENT["supervisor_member_meeting_count"] ) supervisor_member_meeting_count = random.choice( supervisor_member_meeting_counts ).text log.info("年度会议次数:{}".format(supervisor_member_meeting_count)) a = check_num(supervisor_member_meeting_count) self.assertTrue(a) # 工作单位及职务 supervisor_comp_positions = self.new_find_elements( By.ID, self.ELEMENT["supervisor_comp_position"] ) supervisor_comp_position = random.choice(supervisor_comp_positions).text log.info("工作单位及职务:{}".format(supervisor_comp_position)) except AssertionError: raise self.failureException() except Exception as e: log.error(e) raise Exception @getimage def test_004_foundation_xmxx_p0(self): """ 基金会-企业背景-项目信息 """ log.info(self.test_004_foundation_xmxx_p0.__doc__) try: self.enter_official_information("上海文化发展基金会") self.swipeUp(x1=0.5, y1=0.85, y2=0.65, t=500) # 获取项目信息count project_count = self.new_find_element( By.XPATH, self.ELEMENT["project_count"] ).text log.info("项目信息count:{}".format(project_count)) # 进入项目信息 self.new_find_element(By.XPATH, self.ELEMENT["project"]).click() page_title = self.new_find_element(By.ID, self.ELEMENT["title_name"]).text self.assertEqual(page_title, "项目信息", msg="页面title不一致") # 项目标题 item_headers = self.new_find_elements(By.ID, self.ELEMENT["item_header"]) item_header = random.choice(item_headers) item_name = item_header.text log.info("项目标题:{}".format(item_name)) # 年度收入(万元) item_content1s = self.new_find_elements( By.ID, self.ELEMENT["item_content1"] ) item_content1 = random.choice(item_content1s).text log.info("年度收入(万元):{}".format(item_content1)) a = check_num(item_content1) self.assertTrue(a) # 年度支出(万元) item_content2s = self.new_find_elements( By.ID, self.ELEMENT["item_content2"] ) item_content2 = random.choice(item_content2s).text log.info("年度支出(万元):{}".format(item_content2)) a = check_num(item_content2) self.assertTrue(a) # 关注领域 item_content3s = self.new_find_elements( By.ID, self.ELEMENT["item_content3"] ) item_content3 = random.choice(item_content3s).text log.info("关注领域:{}".format(item_content3)) # 随机点击项目信息,页面跳转项目详情页 item_header.click() page_title = self.new_find_element(By.ID, self.ELEMENT["title_name"]).text self.assertEqual(page_title, "项目详情", msg="页面title不一致") # 基本信息 # 项目名称 project_name = self.new_find_element( By.ID, self.ELEMENT["project_name"] ).text log.info("项目名称:{}".format(project_name)) self.assertEqual(project_name, item_name) # 执行年度 detail_year = self.new_find_element(By.ID, self.ELEMENT["detail_year"]).text log.info("执行年度:{}".format(detail_year)) # todo 执行年度校验 # 年度收入(万元) detail_income = self.new_find_element( By.ID, self.ELEMENT["detail_income"] ).text log.info("年度收入(万元):{}".format(detail_income)) a = check_num(detail_income) self.assertTrue(a) # 年度支出(万元) detail_expenditure = self.new_find_element( By.ID, self.ELEMENT["detail_expenditure"] ).text log.info("年度支出(万元):{}".format(detail_expenditure)) a = check_num(detail_expenditure) self.assertTrue(a) # 关注领域 detail_field = self.new_find_element( By.ID, self.ELEMENT["detail_field"] ).text log.info("关注领域:{}".format(detail_field)) # 覆盖地域 detail_region = self.new_find_element( By.ID, self.ELEMENT["detail_region"] ).text log.info("关注领域:{}".format(detail_region)) a = is_all_zh(detail_region) self.assertTrue(a) # 资金用途 detail_fund_use = self.new_find_element( By.ID, self.ELEMENT["detail_fund_use"] ).text log.info("关注领域:{}".format(detail_fund_use)) a = check_funduse(detail_fund_use) self.assertTrue(a) # 受益群体 detail_group = self.new_find_element( By.ID, self.ELEMENT["detail_group"] ).text log.info("受益群体:{}".format(detail_group)) # 项目简介 detail_overview = self.new_find_element( By.ID, self.ELEMENT["detail_overview"] ).text log.info("项目简介:{}".format(detail_overview)) # TODO 项目简介规则校验 # 大额支付对象 no_data = self.new_find_element(By.ID, self.ELEMENT["no_data"]).text log.info("大额支付对象:{}".format(no_data)) # TODO 大额支付对象规则校验 except AssertionError: raise self.failureException() except Exception as e: log.error(e) raise Exception @getimage def test_005_foundation_cwxx_p0(self): """ 基金会-企业背景-财务信息 """ log.info(self.test_005_foundation_cwxx_p0.__doc__) try: self.enter_official_information("上海文化发展基金会") self.swipeUp(x1=0.5, y1=0.85, y2=0.65, t=500) # 获取财务信息count financial_information_count = self.new_find_element( By.XPATH, self.ELEMENT["financial_information_count"] ).text log.info("项目信息count:{}".format(financial_information_count)) # 进入财务信息 self.new_find_element( By.XPATH, self.ELEMENT["financial_information"] ).click() page_title = self.new_find_element(By.ID, self.ELEMENT["title_name"]).text self.assertEqual(page_title, "财务信息", msg="页面title不一致") # 进行年度筛选 self.new_find_element(By.XPATH, self.ELEMENT["screening"]).click() screeningS = self.new_find_elements(By.XPATH, self.ELEMENT["screeningS"]) screening = random.choice(screeningS) screening_value = screening.text log.info("选择筛选时间:{}".format(screening_value)) screening.click() except AssertionError: raise self.failureException() except Exception as e: log.error(e) raise Exception @getimage def test_006_foundation_cwnd_p0(self): """ 基金会-企业背景-财务年度 """ log.info(self.test_006_foundation_cwnd_p0.__doc__) try: self.enter_official_information("上海文化发展基金会") self.swipeUp(x1=0.5, y1=0.85, y2=0.65, t=500) # 获取财务年度count financial_year_count = self.new_find_element( By.XPATH, self.ELEMENT["financial_year_count"] ).text log.info("财务年度count:{}".format(financial_year_count)) # 进入财务年度 self.new_find_element(By.XPATH, self.ELEMENT["financial_year"]).click() financial_year_items = self.new_find_elements(By.ID, self.ELEMENT["financial_year_item"]) num = len(financial_year_items) log.info('财务年度页item数量:{}'.format(num)) self.assertEqual(num, int(financial_year_count)) # 随机进入一个item financial_year_item = random.choice(financial_year_items) item_text = financial_year_item.text financial_year_item.click() # 进入到对应年度的详情页 page_title = self.new_find_element(By.ID, self.ELEMENT["title_name"]).text self.assertEqual(page_title, item_text, msg="页面title不一致") # 财务概况-字段展示 # 净资产 financial_situation_net_assets = self.new_find_element(By.ID, self.ELEMENT[ "financial_situation_net_assets"]).text log.info("净资产:{}".format(financial_situation_net_assets)) # 年度总收入 financial_situation_annual_income = self.new_find_element(By.ID, self.ELEMENT[ "financial_situation_annual_income"]).text log.info("年度总收入:{}".format(financial_situation_annual_income)) # 年度总支出 financial_situation_annual_expenditure = self.new_find_element(By.ID, self.ELEMENT[ "financial_situation_annual_expenditure"]).text log.info("年度总支出:{}".format(financial_situation_annual_expenditure)) # 资产负债表 balance_sheet_group_more = self.new_find_element(By.ID, self.ELEMENT[ "balance_sheet_group_more"]).text log.info("资产负债表:{}".format(balance_sheet_group_more)) # 业务活动表 buniness_group_more = self.new_find_element(By.ID, self.ELEMENT[ "buniness_group_more"]).text log.info("业务活动表:{}".format(buniness_group_more)) # 大额捐赠信息 largedonation_group_more = self.new_find_element(By.ID, self.ELEMENT[ "largedonation_group_more"]).text log.info("大额捐赠信息:{}".format(largedonation_group_more)) # 委托理财去情况 entrust_group_more = self.new_find_element(By.ID, self.ELEMENT[ "entrust_group_more"]).text log.info("委托理财去情况:{}".format(entrust_group_more)) # 点击「更多」按钮,页面跳转财务概况详情页 self.new_find_element(By.ID, self.ELEMENT["item_overview_group_more"]).click() page_title = self.new_find_element(By.ID, self.ELEMENT["title_name"]).text self.assertEqual(page_title, "财务概况详情", msg="页面title不一致") # 财务概况详情页展示 # tv_title tv_title = self.new_find_element(By.ID, self.ELEMENT["tv_title"]).text log.info("财务概况详情页tv_title:{}".format(tv_title)) # 净资产 financial_situation_net_assets1 = self.new_find_element(By.ID, self.ELEMENT[ "financial_situation_net_assets"]).text log.info("净资产:{}".format(financial_situation_net_assets1)) self.assertEqual(financial_situation_net_assets1, financial_situation_net_assets) # 年度总收入 financial_situation_annual_income1 = self.new_find_element(By.ID, self.ELEMENT[ "financial_situation_annual_income"]).text log.info("年度总收入:{}".format(financial_situation_annual_income1)) self.assertEqual(financial_situation_annual_income1, financial_situation_annual_income) # 投资收入 situation_invest_income = self.new_find_element(By.ID, self.ELEMENT["situation_invest_income"]).text log.info("投资收入:{}".format(situation_invest_income)) # 服务收入 situation_service_income = self.new_find_element(By.ID, self.ELEMENT["situation_service_income"]).text log.info("服务收入:{}".format(situation_service_income)) # 政府补贴收入 situation_government_grants_income = self.new_find_element(By.ID, self.ELEMENT[ "situation_government_grants_income"]).text log.info("政府补贴收入:{}".format(situation_government_grants_income)) # 其他收入 situation_other_income = self.new_find_element(By.ID, self.ELEMENT["situation_other_income"]).text log.info("其他收入:{}".format(situation_other_income)) # 捐赠收入 situation_donation_income = self.new_find_element(By.ID, self.ELEMENT["situation_donation_income"]).text log.info("捐赠收入:{}".format(situation_donation_income)) # 年度总支出 financial_situation_annual_expenditure1 = self.new_find_element(By.ID, self.ELEMENT[ "financial_situation_annual_expenditure"]).text log.info("年度总支出:{}".format(financial_situation_annual_expenditure1)) self.assertEqual(financial_situation_annual_expenditure1, financial_situation_annual_expenditure) # 用于公益事业的支出 situation_public_welfare_expenditure = self.new_find_element(By.ID, self.ELEMENT[ "situation_public_welfare_expenditure"]).text log.info("用于公益事业的支出:{}".format(situation_public_welfare_expenditure)) # 工作人员工资福利支出 situation_wages_expenditure = self.new_find_element(By.ID, self.ELEMENT["situation_wages_expenditure"]).text log.info("工作人员工资福利支出:{}".format(situation_wages_expenditure)) # 行政办公支出 situation_administration_expenditure = self.new_find_element(By.ID, self.ELEMENT[ "situation_administration_expenditure"]).text log.info("行政办公支出:{}".format(situation_administration_expenditure)) # 其他支出 situation_other_expenditure = self.new_find_element(By.ID, self.ELEMENT["situation_other_expenditure"]).text log.info("其他支出:{}".format(situation_other_expenditure)) except AssertionError: raise self.failureException() except Exception as e: log.error(e) raise Exception @getimage def test_007_foundation_dwtz_p0(self): """ 基金会-企业背景-对外投资 """ log.info(self.test_007_foundation_dwtz_p0.__doc__) try: # vip 账号登录登录 account = Account() acc_vip_name = account.get_account('vip') acc_pwd = account.get_pwd() log.info("登录VIP账号:".format(acc_vip_name)) self.login(acc_vip_name, acc_pwd) self.enter_official_information("上海文化发展基金会") self.swipeUp(x1=0.5, y1=0.85, y2=0.65, t=500) # 获取对外投资count foreign_investment_count = self.new_find_element( By.XPATH, self.ELEMENT["foreign_investment_count"] ).text log.info("对外投资count:{}".format(foreign_investment_count)) # 进入对外投资 self.new_find_element(By.XPATH, self.ELEMENT["foreign_investment"]).click() page_title = self.new_find_element(By.ID, self.ELEMENT["title_name"]).text self.assertEqual(page_title, "对外投资", msg="页面title不一致") # 存长图 save_long_figure = self.new_find_element(By.XPATH, self.ELEMENT["save_long_figure"]) self.assertIsNotNone(save_long_figure) # 分享 share = self.new_find_element(By.XPATH, self.ELEMENT["share"]) self.assertIsNotNone(share) # 对外投资页-页面字段展示 # 公司名称 outinvest_company_name = self.new_find_elements(By.ID, self.ELEMENT["outinvest_company_name"])[1].text log.info("公司名称:{}".format(outinvest_company_name)) # 法定代表人 outinvest_legal = self.new_find_elements(By.ID, self.ELEMENT["outinvest_legal"])[1].text log.info("法定代表人:{}".format(outinvest_legal)) # 经营状态 outinvest_reg_capital = self.new_find_elements(By.ID, self.ELEMENT["outinvest_reg_capital"])[1].text log.info("经营状态:{}".format(outinvest_reg_capital)) a = operating_check(1, outinvest_reg_capital) self.assertTrue(a) # 投资数额 outinvest_amount = self.new_find_elements(By.ID, self.ELEMENT["outinvest_amount"])[1].text log.info("投资数额:{}".format(outinvest_amount)) a = is_bill_available(outinvest_amount) self.assertTrue(a) # 投资比例 outinvest_ratio = self.new_find_elements(By.ID, self.ELEMENT["outinvest_ratio"])[1].text log.info("投资比例:{}".format(outinvest_ratio)) a = is_percentage_available(outinvest_ratio) self.assertTrue(a) # 成立日期 outinverst_date = self.new_find_elements(By.ID, self.ELEMENT["outinverst_date"])[1].text log.info("成立日期:{}".format(outinverst_date)) a = check_time(outinverst_date) self.assertTrue(a) # 公司的跳转 self.new_find_elements(By.ID, self.ELEMENT["outinvest_company_name"])[1].click() comp_name = self.new_find_element(By.ID, self.ELEMENT["comp_name"]).text log.info("页面跳转后公司详情页name:{}".format(comp_name)) self.assertEqual(comp_name, outinvest_company_name) self.driver.keyevent(4) # 人的跳转 self.new_find_elements(By.ID, self.ELEMENT["outinvest_legal"])[1].click() close_guide(self) person_name = self.new_find_element(By.ID, self.ELEMENT["person_name"]).text # self.assertEqual(person_name, outinvest_legal) self.assertIn(outinvest_legal, person_name) self.driver.keyevent(4) # 股权机构的跳转 self.new_find_elements(By.ID, self.ELEMENT["outinvest_title_right"])[1].click() title_name = self.new_find_element(By.ID, self.ELEMENT["title_name"]).text self.assertEqual(title_name, '股权结构') self.driver.keyevent(4) # 对外投资页count comp_count = self.all_count_compute_v1(By.ID, self.ELEMENT["outinvest_company_name"]) log.info("对外投资页item展示数量:{}".format(comp_count)) self.assertEqual(comp_count, int(foreign_investment_count)) account.release_account(acc_vip_name, "vip") except AssertionError: raise self.failureException() except Exception as e: log.error(e) raise Exception
class Search_relationTest(MyTest, Operation): """查关系_03""" a = Read_Ex() ELEMENT = a.read_excel("Search_relation") account = Account() phone_vip = account.get_account("vip") @classmethod def setUpClass(cls): super().setUpClass() cls.sift_opera = SiftOperation(cls.driver, cls.ELEMENT) @classmethod def tearDownClass(cls): cls.account.release_account(cls.phone_vip, account_type='vip') super().tearDownClass() @getimage def into_middle_page(self): """ 进入查关系页 """ self.new_find_element(By.ID, self.ELEMENT["search_relation"]).click() self.new_find_element(By.ID, self.ELEMENT["search_box"]).click() @getimage def capital(self): """注册资本校验""" if self.isElementExist(By.ID, self.ELEMENT["more_zczb_title_num"]): zczbStr = self.new_find_element( By.ID, self.ELEMENT["more_zczb_title_num"]).text if zczbStr == "-": result = float(0) else: result = float(re.findall(r"\d+\.?\d*", zczbStr)[0]) else: result = float(0) return result @getimage def years(self): """注册年限校验""" zcnxStr = self.new_find_element( By.ID, self.ELEMENT["more_zcnx_title_num"]).text if zcnxStr == '-': result = datetime.datetime(1900, 1, 1) else: zcnxStrList = zcnxStr.split(".") result = datetime.datetime(int(zcnxStrList[0]), int(zcnxStrList[1]), int(zcnxStrList[2])) return result @getimage def select_image(self, sort, index, tag, inputTarget): """ 筛选后,选择公司 :param sort: 排序 :param index: 索引 :param tag: 1:第一家公司;2:第二家公司 :param inputTarget: 选中项 :return: """ self.new_find_element(By.ID, self.ELEMENT["search_sort_or_cancel"]).click() self.new_find_element( By.XPATH, '//*[@class="android.widget.TextView" and @text="{}"]'.format( sort)).click() img_xpath = '//*[@resource-id="android:id/list"]/android.widget.LinearLayout[{}]/android.widget.RelativeLayout/android.widget.ImageView'.format( str(tag)) self.new_find_element(By.XPATH, img_xpath).click() self.new_find_element(By.XPATH, self.ELEMENT["sky_canvas"]).click() company_name = self.new_find_element( By.ID, self.ELEMENT["firm_detail_name_tv"]).text log.info("{},断言公司名称「{}」:{}".format(sort, str(tag), company_name)) if index == 0 or index == 1: result = self.capital() else: result = self.years() self.sift_opera.back2relation_search(inputTarget) return result @getimage def test_001_cgx_sszjy_p0(self): """查关系-搜索中间页热搜""" log.info(self.test_001_cgx_sszjy_p0.__doc__) sortKey = ["按注册资本从高到低", "按注册资本从低到高", "按成立日期从早到晚", "按成立日期从晚到早"] try: self.sift_opera.login_vip(self.phone_vip, self.account.get_pwd()) self.into_middle_page() self.new_find_element(By.ID, self.ELEMENT["from_input_textview"]).click() # 删除历史记录 if self.isElementExist(By.ID, self.ELEMENT["middlepage_search_history"]): self.new_find_element( By.ID, self.ELEMENT["middlepage_search_history_delete"]).click() self.new_find_element(By.ID, self.ELEMENT["delete_confirm"]).click() # 断言-点击热搜词,输入框中带入对应关键词 tarHotWord = self.new_find_element( By.XPATH, self.ELEMENT["middlepage_hot_search_target"]) hotWordText = tarHotWord.text tarHotWord.click() tarWordText = self.new_find_element( By.ID, self.ELEMENT["search_input_edit"]).text self.assertEqual(tarWordText, hotWordText, "===失败-搜索关键词与热搜关键词不一致===") # 断言-搜索输入框一键删除按钮 btn = self.isElementExist(By.ID, self.ELEMENT["search_clean_iv"]) self.assertTrue(btn, "===失败-搜索输入框,一键删除按钮展示错误===") # 断言-搜索匹配结果包含关键词 result_text = self.new_find_element( By.XPATH, self.ELEMENT["search_result"]).text brand_text = self.new_find_element( By.XPATH, self.ELEMENT["search_result_brand"]).text tag = hotWordText in result_text or hotWordText in brand_text self.assertTrue(tag, "===失败-搜索结果不包含关键字===") # 断言-搜索结果页排序 self.new_find_element(By.ID, self.ELEMENT["search_clean_iv"]).click() self.new_find_element( By.ID, self.ELEMENT["search_input_edit"]).send_keys("佳洋") keyNum = random.randint(0, 3) result1 = self.select_image(sortKey[keyNum], keyNum, 1, "佳洋") result2 = self.select_image(sortKey[keyNum], keyNum, 2, "佳洋") if keyNum == 0 or keyNum == 3: # 断言-按注册资本从高到低;按成立日期从晚到早 self.assertTrue(result1 >= result2, "===失败-{}排序错误===".format(sortKey[keyNum])) else: # 断言-按注册资本从低到高;按成立日期从早到晚 self.assertTrue(result1 <= result2, "===失败-{}排序错误===".format(sortKey[keyNum])) # 断言-点击搜索输入框一键删除按钮,清空搜索关键词 self.new_find_element(By.ID, self.ELEMENT["search_clean_iv"]).click() cancel = self.new_find_element( By.ID, self.ELEMENT["search_sort_or_cancel"]).text self.assertEqual("取消", cancel, "===失败-点击输入框关键字一键删除按钮,清空失败===") except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_002_cgx_gdcz_p0(self): """查关系-关系图,更多操作校验""" log.info(self.test_002_cgx_gdcz_p0.__doc__) try: self.into_middle_page() # 断言-展示默认关系占位图(马云-赵薇) self.assertTrue( self.isElementExist(By.ID, self.ELEMENT["relation_empty"]), "===失败-未展示查关系占位图===", ) # 断言-进入搜索中间页 self.new_find_element(By.ID, self.ELEMENT["from_input_textview"]).click() self.assertTrue( self.isElementExist(By.ID, self.ELEMENT["search_contacts"]), "===失败-未显示身边老板入口===", ) # 断言-输入起始节点 self.new_find_element( By.ID, self.ELEMENT["search_input_edit"]).send_keys("北京金堤科技有限公司") cancel = self.new_find_element( By.ID, self.ELEMENT["search_sort_or_cancel"]).text self.assertEqual(cancel, "排序", "===失败-输入起始节点失败===") # 断言-回填起始节点 self.new_find_element(By.XPATH, self.ELEMENT["from_target_item_1"]).click() self.assertEqual( self.new_find_element( By.ID, self.ELEMENT["from_input_textview"]).text, "北京金堤科技有限公司", "===失败-回填起始节点错误===", ) # 断言-输入一个关键词,查关系按钮不可点 attr = self.new_find_element( By.ID, self.ELEMENT["discover_btn"]).get_attribute("enabled") self.assertEqual(attr, "false", "===失败-查关系按钮未置灰===") # 断言-输入两个关键词,查关系按钮可点 self.new_find_element(By.ID, self.ELEMENT["to_input_textview"]).click() self.new_find_element( By.ID, self.ELEMENT["search_input_edit"]).send_keys("盐城金堤科技有限公司") self.new_find_element(By.XPATH, self.ELEMENT["from_target_item_1"]).click() attr = self.new_find_element( By.ID, self.ELEMENT["discover_btn"]).get_attribute("enabled") self.assertEqual(attr, "true", "===失败-查关系按钮置灰===") self.assertTrue( self.isElementExist(By.ID, self.ELEMENT["more_operation_btn"]), "===失败-未展示更多操作按钮===", ) self.assertTrue( self.isElementExist(By.ID, self.ELEMENT["clear_all"]), "===失败-未展示一键清空按钮===", ) # 断言-输入完关键词后,点开查关系 self.new_find_element(By.ID, self.ELEMENT["discover_btn"]).click() # 断言-关系图,更多操作-分享按钮 self.new_find_element(By.ID, self.ELEMENT["more_operation_btn"]).click() self.new_find_element(By.ID, self.ELEMENT["map_more_share"]).click() self.assertTrue( self.isElementExist(By.ID, self.ELEMENT["btn_wechat_friends"]), "===失败-关系图-更多操作-分享弹框-微信好友===", ) self.assertTrue( self.isElementExist(By.ID, self.ELEMENT["btn_wechat_pengyouquan"]), "===失败-关系图-更多操作-分享弹框-微信朋友圈===", ) self.new_find_element(By.ID, self.ELEMENT["share_cancel"]).click() except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception try: # 断言-关系图,更多操作-保存按钮 self.new_find_element(By.ID, self.ELEMENT["more_operation_btn"]).click() self.assertTrue( self.isElementExist(By.ID, self.ELEMENT["map_more_save"]), "===失败-关系图-更多操作-保存按钮===", ) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception try: # 断言-关系图,更多操作-扫一扫按钮 self.assertTrue( self.isElementExist(By.ID, self.ELEMENT["map_more_scan"]), "===失败-关系图-更多操作-扫一扫按钮===", ) self.new_find_element(By.ID, self.ELEMENT["map_more_scan"]).click() self.assertEqual( self.ELEMENT["scan_page_title_text"], self.new_find_element(By.XPATH, self.ELEMENT["scan_page_title"]).text, "===失败-关系图-更多操作扫一扫页title===", ) self.assertTrue( self.isElementExist(By.ID, self.ELEMENT["bt_scan"]), "===失败-关系图-更多操作-扫一扫页,扫一扫按钮===", ) self.new_find_element(By.ID, self.ELEMENT["bt_scan"]).click() if self.isElementExist(By.XPATH, self.ELEMENT["permission_btn"]): self.new_find_element(By.XPATH, self.ELEMENT["permission_btn"]).click() self.assertTrue( self.isElementExist(By.ID, self.ELEMENT["viewfinder_view"]), "===失败-进入扫描页失败===", ) self.driver.keyevent(4) self.driver.keyevent(4) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception try: # 断言-关系图,更多操作-删减按钮 self.new_find_element(By.ID, self.ELEMENT["more_operation_btn"]).click() # 断言-关系图更多操作,展示删减按钮 self.assertTrue(True, "===失败-关系图-更多操作-删减按钮===") self.new_find_element(By.ID, self.ELEMENT["map_more_edit"]).click() # 断言-关系图更多操作,点击删减按钮,展示取消、确认、撤销按钮 self.assertTrue( self.isElementExist(By.ID, self.ELEMENT["btn_cancle"]), "===失败-关系图-更多操作-删减操作取消按钮===", ) self.assertTrue( self.isElementExist(By.ID, self.ELEMENT["btn_save"]), "===失败-关系图-更多操作-删减操作确定按钮===", ) # 断言-未删减节点,插销按钮不可点 self.assertEqual( self.new_find_element( By.ID, self.ELEMENT["btn_restore_node"]).get_attribute("enabled"), "false", "===失败-查关系更多操作-撤销删减操作===", ) self.new_find_element(By.XPATH, self.ELEMENT["relation_point_text"]).click() # 断言-删减节点,撤销按钮可点 self.assertEqual( self.new_find_element( By.ID, self.ELEMENT["btn_restore_node"]).get_attribute("enabled"), "true", "===失败-查关系更多操作-撤销删减操作===", ) # 断言-被删减节点消失 self.assertFalse( self.isElementExist(By.XPATH, self.ELEMENT["relation_point_text"]), "===失败-删减节点失败===", ) self.new_find_element(By.ID, self.ELEMENT["btn_restore_node"]).click() # 断言-点击撤销按钮,被删减节点恢复 self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["relation_point_text"]), "===失败-撤销删减查关系节点===", ) # 断言-取消删减按钮,回到关系图页,节点仍存在 self.new_find_element(By.XPATH, self.ELEMENT["relation_point_text"]).click() self.new_find_element(By.ID, self.ELEMENT["btn_cancle"]).click() self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["relation_point_text"]), "===失败-撤销删减查关系节点===", ) # 断言-确定删减按钮,回到关系图,节点消失 self.new_find_element(By.ID, self.ELEMENT["more_operation_btn"]).click() self.new_find_element(By.ID, self.ELEMENT["map_more_edit"]).click() self.new_find_element(By.XPATH, self.ELEMENT["relation_point_text"]).click() self.new_find_element(By.ID, self.ELEMENT["btn_save"]).click() self.assertFalse( self.isElementExist(By.XPATH, self.ELEMENT["relation_point_text"]), "===失败-删减节点失败===", ) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_003_cgx_sszjy_p0(self): """查关系-搜索中间页,历史搜索""" log.info(self.test_003_cgx_sszjy_p0.__doc__) keyWord = None keyList = [ "测试1", "测试2", "测试3", "测试4", "测试5", "测试6", "测试7", "测试8", "测试9", "测试10", "测试11", ] try: self.into_middle_page() self.new_find_element(By.ID, self.ELEMENT["from_input_textview"]).click() for i in range(len(keyList)): keyNum = random.randint(1, len(keyList)) keyWord = keyList[keyNum - 1] self.new_find_element( By.ID, self.ELEMENT["search_input_edit"]).send_keys(keyWord) self.adb_send_input(By.ID, self.ELEMENT["search_input_edit"], keyWord, self.device) self.new_find_element(By.ID, self.ELEMENT["search_clean_iv"]).click() # 断言-点击热搜词后,生成搜索历史 self.assertTrue( self.isElementExist(By.ID, self.ELEMENT["middlepage_search_history"]), "===失败-无最近搜索===", ) self.assertFalse( self.isElementExist(By.XPATH, self.ELEMENT["middlepage_hot_search"]), "===失败-未展示一键清除按钮===", ) self.assertEqual( self.new_find_element( By.XPATH, self.ELEMENT["first_search_history"]).text, keyWord, "===失败-最近搜索词未展示在搜索历史第一位===", ) # 断言-一键清空历史记录-取消清空 self.new_find_element( By.ID, self.ELEMENT["middlepage_search_history_delete"]).click() self.assertTrue( self.isElementExist(By.ID, self.ELEMENT["delte_cancel"]), "===失败-二次确认弹窗未弹出===", ) self.new_find_element(By.ID, self.ELEMENT["delte_cancel"]).click() self.assertFalse( self.isElementExist(By.ID, self.ELEMENT["delete_confirm"]), "===失败-二次确认弹窗未关闭===", ) self.assertTrue( self.isElementExist(By.ID, self.ELEMENT["middlepage_search_history"]), "===失败-取消后,搜索历史未展示===", ) # 断言-一键清空历史记录-确定清空 self.new_find_element( By.ID, self.ELEMENT["middlepage_search_history_delete"]).click() self.new_find_element(By.ID, self.ELEMENT["delete_confirm"]).click() self.assertTrue( self.isElementExist(By.XPATH, self.ELEMENT["middlepage_hot_search"]), "===失败-搜索记录未清空===", ) self.assertFalse( self.isElementExist( By.ID, self.ELEMENT["middlepage_search_history_delete"]), "===失败-一键删除按钮未隐藏===", ) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception
class Taiwan_01(MyTest, Operation): """台湾企业-企业背景""" a = Read_Ex() ELEMENT = a.read_excel("Company_taiwan") def enter_official_information(self, company_name): """ 首页搜索公司名进入到公司官方信息页 company_name : 公司名称 :return: company_name 官方信息页 """ self.company_name = company_name self.new_find_element(By.ID, "com.tianyancha.skyeye:id/home_tab1").click() self.new_find_element( By.ID, "com.tianyancha.skyeye:id/txt_search_copy1" ).click() self.new_find_element( By.ID, "com.tianyancha.skyeye:id/search_input_et" ).send_keys(self.company_name) self.new_find_elements(By.ID, "com.tianyancha.skyeye:id/tv_company_name")[ 0 ].click() log.info("进入公司 {} 官方信息页".format(self.company_name)) def get_elemengt_text(self, element): text = self.new_find_element(By.ID, element).text return text @getimage def test_001_taiwan_djxx_p0(self): """ 台湾企业-企业背景-登记信息 """ log.info(self.test_001_taiwan_djxx_p0.__doc__) try: self.enter_official_information('怡安医疗器材股份有限公司') # 进入登记信息模块 self.new_find_element(By.XPATH, self.ELEMENT["registration"]).click() title_name = self.get_elemengt_text(self.ELEMENT['title_name']) log.info("页面title:{}".format(title_name)) self.assertEqual(self.company_name, title_name, msg="登记信息跟所属公司不对应") # 登记信息 # 英文名称 eng_name = self.get_elemengt_text(self.ELEMENT['enname']) log.info("英文名称:{}".format(eng_name)) self.assertFalse(is_contain_chinese(eng_name)) # 资本总额(新台币) count_mn = self.get_elemengt_text(self.ELEMENT['count_mn']) log.info("资本总额(新台币):{}".format(count_mn)) self.assertTrue(is_bill_available(count_mn)) # 实收资本额(新台币) count_mn_pt = self.get_elemengt_text(self.ELEMENT['count_mn_pt']) log.info("实收资本额(新台币):{}".format(count_mn_pt)) self.assertTrue(is_bill_available(count_mn_pt)) # 代表人 legel_person_name = self.get_elemengt_text(self.ELEMENT['legel_person_name']) log.info("代表人:{}".format(legel_person_name)) # 公司状况 tv_status = self.get_elemengt_text(self.ELEMENT['tv_status']) log.info("公司状况:{}".format(tv_status)) # 股权状态 tv_equity_status = self.get_elemengt_text(self.ELEMENT['tv_equity_status']) log.info("股权状态:{}".format(tv_equity_status)) # 统一编号 tv_code = self.get_elemengt_text(self.ELEMENT['tv_code']) log.info("统一编号:{}".format(tv_code)) # 登记机关 tv_reg_office = self.get_elemengt_text(self.ELEMENT['tv_reg_office']) log.info("登记机关:{}".format(tv_reg_office)) # 标准设立日期 tv_setdata = self.get_elemengt_text(self.ELEMENT['tv_setdata']) log.info("标准设立日期:{}".format(tv_setdata)) self.assertTrue(check_time(tv_setdata)) # 最后核准变更日期 tv_final_change_data = self.get_elemengt_text(self.ELEMENT['tv_final_change_data']) log.info("最后核准变更日期:{}".format(tv_final_change_data)) self.assertTrue(check_time(tv_final_change_data)) # 公司所在地 tv_address = self.get_elemengt_text(self.ELEMENT['tv_address']) log.info("公司所在地:{}".format(tv_address)) # 经营范围 tv_business = self.get_elemengt_text(self.ELEMENT['tv_business']) log.info("经营范围:{}".format(tv_business)) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_002_taiwan_djs_p0(self): """ 台湾企业-企业背景-董监事 """ log.info(self.test_002_taiwan_djs_p0.__doc__) try: self.enter_official_information('怡安医疗器材股份有限公司') # 获取董监事公司详情页count targeting_count = self.new_find_element(By.XPATH, self.ELEMENT['targeting_count']).text targeting_count = int(targeting_count) log.info("董监事count:{}".format(targeting_count)) # 进入董监事模块 self.new_find_element(By.XPATH, self.ELEMENT["targeting"]).click() title_name = self.get_elemengt_text(self.ELEMENT['title_name']) log.info("页面title:{}".format(title_name)) self.assertEqual("董监事", title_name, msg="页面title不对应") # 获取董监事列表页count targeting_count1 = self.all_count_compute_v1(By.ID, self.ELEMENT['tv_person_name']) log.info("统计董监事count:{}".format(targeting_count1)) self.assertEqual(targeting_count1, targeting_count, msg="count数不对应") # 所代表法人 tv_setdata = self.new_find_elements(By.ID, self.ELEMENT['tv_setdata'])[1].text log.info("所代表法人:{}".format(tv_setdata)) # 持有股份数 tv_final_change_data = self.new_find_elements(By.ID, self.ELEMENT['tv_final_change_data'])[1].text log.info("持有股份数:{}".format(tv_final_change_data)) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_003_taiwan_jlr_p0(self): """ 台湾企业-企业背景-经理人 """ log.info(self.test_003_taiwan_jlr_p0.__doc__) try: self.enter_official_information('怡安医疗器材股份有限公司') # 获取经理人公司详情页count Managers_count = self.new_find_element(By.XPATH, self.ELEMENT['Managers_count']).text Managers_count = int(Managers_count) log.info("经理人count:{}".format(Managers_count)) # 进入经理人模块 self.new_find_element(By.XPATH, self.ELEMENT["Managers"]).click() title_name = self.get_elemengt_text(self.ELEMENT['title_name']) log.info("页面title:{}".format(title_name)) self.assertEqual("经理人", title_name, msg="页面title不对应") # 获取经理人列表页count Managers_count1 = self.all_count_compute_v1(By.ID, self.ELEMENT['tv_person_name']) log.info("统计董监事count:{}".format(Managers_count1)) self.assertEqual(Managers_count1, Managers_count, msg="count数不对应") # 到职日期 tv_duty = self.new_find_elements(By.ID, self.ELEMENT['tv_duty'])[0].text log.info("到职日期:{}".format(tv_duty)) self.assertTrue(check_time(tv_duty)) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_004_taiwan_fgs_p0(self): """ 台湾企业-企业背景-分公司 """ log.info(self.test_004_taiwan_fgs_p0.__doc__) try: self.enter_official_information('明日世界电脑股份有限公司') # 获取分公司 公司详情页count branch_count = self.new_find_element(By.XPATH, self.ELEMENT['branch_count']).text branch_count = int(branch_count) log.info("经理人count:{}".format(branch_count)) # 进入分公司模块 self.new_find_element(By.XPATH, self.ELEMENT["branch"]).click() title_name = self.get_elemengt_text(self.ELEMENT['title_name']) log.info("页面title:{}".format(title_name)) self.assertEqual("分公司", title_name, msg="页面title不对应") # 代表人 tv_item_content_block_1_1 = self.new_find_elements(By.ID, self.ELEMENT['tv_item_content_block_1_1'])[1].text log.info("代表人:{}".format(tv_item_content_block_1_1)) # 统一编号 tv_item_content_block_1_2 = self.new_find_elements(By.ID, self.ELEMENT['tv_item_content_block_1_2'])[1].text log.info("统一编号:{}".format(tv_item_content_block_1_2)) # 核准设立日期 tv_item_content_block_2_1 = self.new_find_elements(By.ID, self.ELEMENT['tv_item_content_block_2_1'])[1].text log.info("核准设立日期:{}".format(tv_item_content_block_2_1)) self.assertTrue(check_time(tv_item_content_block_2_1)) # 最后核准变更日期 tv_item_content_block_2_2 = self.new_find_elements(By.ID, self.ELEMENT['tv_item_content_block_2_2'])[1].text log.info("最后核准变更日期:{}".format(tv_item_content_block_2_2)) self.assertTrue(check_time(tv_item_content_block_2_2)) # 公司状态 tv_status = self.new_find_elements(By.ID, self.ELEMENT['tv_status'])[1].text log.info("公司状态:{}".format(tv_status)) # 公司详情页跳转 company = self.new_find_elements(By.ID, self.ELEMENT['tv_item_header'])[1] companyname = company.text log.info("分公司页面-公司名称:{}".format(companyname)) company.click() # 公司详情页-公司名称 companyname1 = self.new_find_element(By.ID, self.ELEMENT['firm_detail_name_tv']).text log.info("公司详情页-公司名称:{}".format(companyname1)) self.assertEqual(companyname1, companyname) self.driver.keyevent(4) # 分公司详情页count数统计 branch_count1 = self.data_list_count(By.ID, self.ELEMENT['tv_item_content_block_1_2']) log.info("分公司详情页count数统计:{}".format(branch_count1)) self.assertEqual(branch_count1, branch_count, msg="count数不对应") except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception @getimage def test_005_taiwan_dwtz_p0(self): """ 台湾企业-企业背景-对外投资 """ log.info(self.test_005_taiwan_dwtz_p0.__doc__) try: self.enter_official_information('怡安医疗器材股份有限公司') # 获取对外投资 公司详情页count foreign_investment_count = self.new_find_element(By.XPATH, self.ELEMENT['foreign_investment_count']).text foreign_investment_count = int(foreign_investment_count) log.info("对外投资count:{}".format(foreign_investment_count)) # 进入对外投资模块 self.new_find_element(By.XPATH, self.ELEMENT["foreign_investment"]).click() title_name = self.get_elemengt_text(self.ELEMENT['title_name']) log.info("页面title:{}".format(title_name)) self.assertEqual("对外投资", title_name, msg="页面title不对应") # 对外投资 公司/公司跳转 comp = self.new_find_elements(By.ID, self.ELEMENT['outinvest_company_name_tv']) comp_name = comp[0].text # 公司名称 log.info('对外投资公司:{}'.format(comp_name)) comp[0].click() # 进入公司详情页 self.driver.keyevent(4) # 公司详情页回退到对外投资页 # 法定代表人/人详情跳转 outinvest_legal_tv = self.new_find_elements(By.ID, self.ELEMENT['outinvest_company_name_tv']) outinvest_legal_tv1 = outinvest_legal_tv[0].text log.info("法定代表人:{}".format(outinvest_legal_tv1)) outinvest_legal_tv[0].click() # 进入人详情 self.driver.keyevent(4) # 人详情页回退到对外投资页 # 经营状态 outinvest_reg_capital_tv = self.new_find_elements(By.ID, self.ELEMENT['outinvest_reg_capital_tv']) outinvest_reg_capital_tv1 = outinvest_reg_capital_tv[0].text log.info("经营状态:{}".format(outinvest_reg_capital_tv1)) self.assertTrue(operating_check(1, outinvest_reg_capital_tv1)) # 投资数额 tv_outinvest_amount = self.new_find_elements(By.ID, self.ELEMENT['tv_outinvest_amount']) tv_outinvest_amount1 = tv_outinvest_amount[0].text log.info("投资数额:{}".format(tv_outinvest_amount1)) self.assertTrue(is_bill_available(tv_outinvest_amount1)) # 投资比例 tv_outinvest_ratio = self.new_find_elements(By.ID, self.ELEMENT['tv_outinvest_ratio']) tv_outinvest_ratio1 = tv_outinvest_ratio[0].text log.info("注册比例:{}".format(tv_outinvest_ratio1)) self.assertTrue(is_percentage_available(tv_outinvest_ratio1)) # 成立日期 tv_outinverst_date = self.new_find_elements(By.ID, self.ELEMENT['tv_outinverst_date']) tv_outinverst_date1 = tv_outinverst_date[0].text log.info("成立日期:{}".format(tv_outinverst_date1)) # 股权结构 tv_outinvest_title_right = self.new_find_elements(By.ID, self.ELEMENT['tv_outinvest_title_right']) tv_outinvest_title_right[0].click() account = Account() acc_vip_name = account.get_account('vip') acc_pwd = account.get_pwd() log.info("登录VIP账号:{},密码为:{}".format(acc_vip_name, acc_pwd)) self.login(acc_vip_name, acc_pwd) title_name = self.get_elemengt_text(self.ELEMENT['title_name']) log.info("页面title:{}".format(title_name)) self.assertEqual("股权结构", title_name, msg="页面title不对应") self.driver.keyevent(4) # 对外投资列表页count统计 foreign_investment_count1 = self.all_count_compute_v1(By.ID, self.ELEMENT['outinvest_company_name_tv']) self.assertEqual(foreign_investment_count1, foreign_investment_count) account.release_account(acc_vip_name, "vip") except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise Exception
class AllServer5(MyTest, Operation): """金刚区_05""" a = Read_Ex() ELEMENT = a.read_excel('All_server') def in_allserver(self, value, size=1): """ 金刚区 全部服务进入对应的入口 value: 模块名称 example: cll(查老赖) """ self.value = value self.new_find_elements(By.ID, self.ELEMENT['king_area'])[4].click() if size is 1: pass else: self.swipeUp() self.new_find_element(By.XPATH, self.ELEMENT[self.value]).click() def search_input(self, value): """ 输入关键字搜索 """ self.new_find_element(By.ID, self.ELEMENT['search_input']).send_keys(value) self.new_find_element(By.ID, self.ELEMENT['search_icon']).click() time.sleep(0.5) search_value = self.new_find_element(By.ID, self.ELEMENT['search_input']).text return search_value def hot_search(self): """ 随机点击热门搜索 """ nums = self.new_find_elements(By.XPATH, self.ELEMENT['hot_search']) num = random.choice(nums) hot_search = num.text log.info('热门搜索:{}'.format(hot_search)) num.click() return hot_search def search_clean(self): """ 搜索框一X """ self.new_find_element(By.ID, self.ELEMENT['search_input']).click() self.new_find_element(By.ID, self.ELEMENT['search_clean']).click() def search_recent_clear(self, default=1): """ 一键清除 最近搜索-清空icon """ self.new_find_element(By.ID, self.ELEMENT['search_recent_clear']).click() if default == 1: self.new_find_element(By.ID, self.ELEMENT['confirm']).click() else: self.new_find_element(By.ID, self.ELEMENT['cancel']).click() def jump_bounced(self, ele_key='first_btn'): """ 跳过弹框 默认:'我知道了' """ loc = (By.ID, self.ELEMENT[ele_key]) try: e = WebDriverWait(self.driver, 1, 0.5).until(EC.presence_of_element_located(loc)) e.click() except Exception as e: print(e, '没有首次弹框') pass def is_toast_exist(self, text, timeout=1, poll_frequency=0.5): """is toast exist, return True or False - text - 页面上看到的文本内容 - timeout - 最大超时时间,默认1s - poll_frequency - 间隔查询时间,默认0.5s查询一次 is_toast_exist( "看到的内容") """ try: toast_loc = ("xpath", ".//*[contains(@text,'%s')]" % text) WebDriverWait(self.driver, timeout, poll_frequency).until( EC.presence_of_element_located(toast_loc)) return True except Exception as e: print(e, '未捕获toast提示') return False def hit_login(self, account='18535081116', password='******'): """ 点击操作正好遇到需要登录的时候使用 :param account: 账号 :param password: 密码 """ try: loc = (By.XPATH, '//*[@class="android.widget.TextView" and @text="短信验证码登录"]') login = self.isElementExist(*loc) if login: self.new_find_element( By.XPATH, "//*[@class='android.widget.TextView' and @text='密码登录']" ).click() self.new_find_element( By.XPATH, "//*[@class='android.widget.EditText' and @text='输入手机号']" ).send_keys(account) self.new_find_element( By.XPATH, "//*[@class='android.widget.EditText' and @text='输入密码']" ).send_keys(password) # 点击勾选协议 self.new_find_element( By.ID, "com.tianyancha.skyeye:id/cb_login_check").click() self.new_find_element( By.ID, "com.tianyancha.skyeye:id/tv_login").click() else: pass except Exception as e: print(e, '用户已登录') pass @getimage def test_019_qbfu_swpj_p0(self): """ 税务评级功能正常使用 1、热门搜索 2、输入搜索—有结果 3、输入搜搜索---无结果 4、最近搜素 5、一键清除 """ log.info(self.test_019_qbfu_swpj_p0.__doc__) try: self.in_allserver('swpj', 2) a = self.new_find_element(By.ID, self.ELEMENT['search_input']).text self.assertEqual(a, '请输入企业名称', msg='输入框提示信息不正确') # 随机点击热搜公司 b = self.hot_search() log.info('点击热搜公司:{}'.format(b)) c = self.isElementExist(By.ID, self.ELEMENT['search_title']) self.assertTrue(c, msg='结果页存在数据') d = self.new_find_elements(By.XPATH, self.ELEMENT['taxrate_id'])[0].text self.assertEqual(d, '纳税人识别号:') # 输入搜索无结果-随便打 self.search_clean() self.search_input('随便打') e = self.is_toast_exist('无数据') self.assertTrue(e, msg='toast提示未捕获') f = self.isElementExist(By.ID, self.ELEMENT['search_title']) self.assertFalse(f, msg='标识存在的话是有结果') # 输入搜索—有结果 宋庆龄 self.search_clean() self.search_input('宋庆龄') c1 = self.isElementExist(By.ID, self.ELEMENT['search_title']) self.assertTrue(c1, msg='应该有结果,展示无结果') self.search_clean() # 一键清除 self.search_recent_clear(2) f = self.isElementExist(By.ID, self.ELEMENT['search_recent_clear']) self.assertTrue(f, msg='一键清除-取消,最近搜索按钮还存在') self.search_recent_clear() g = self.isElementExist(By.ID, self.ELEMENT['search_recent_clear']) self.assertFalse(g, msg='一键清除-确认,最近搜索按钮不存在') h = self.isElementExist(By.XPATH, self.ELEMENT['hotsearch_bs']) self.assertTrue(h, msg='一键清除不存在,「热门搜素」存在') # 最近搜索记录 name_list = [ '马云', '孙凯', '王四会', '马丁', '韩磊', '李明', '向小叶', '蓝小凯', '李晓凯', '朱小凯', '赵小凯', '陈小凯' ] for name in name_list: log.info('输入搜索词:{}'.format(name)) self.search_input(name) self.search_clean() history_words = self.new_find_elements(By.XPATH, self.ELEMENT['hot_search']) for i in range(10): log.info("历史:{} vs 输入:{}".format(history_words[i].text, name_list[11 - i])) self.assertEqual(history_words[i].text, name_list[11 - i], '名字顺序不一致') except AssertionError: raise self.failureException() except Exception as e: log.error(e) raise Exception @getimage def test_020_qbfu_jckxy_p0(self): """ 进出口信用功能正常使用 1、热门搜索 2、输入搜索—有结果 3、输入搜搜索-无结果 4、最近搜索 5、一键清除 6、搜索有结果点击查看详情 """ log.info(self.test_020_qbfu_jckxy_p0.__doc__) try: self.in_allserver('jckxy', 2) a = self.new_find_element(By.ID, self.ELEMENT['search_input']).text self.assertEqual(a, '请输入企业名称', msg='输入框提示信息不正确') # 随机点击热搜公司 b = self.hot_search() log.info('点击热搜公司:{}'.format(b)) c = self.isElementExist(By.ID, self.ELEMENT['search_title']) self.assertTrue(c, msg='结果页存在数据') d = self.new_find_elements(By.XPATH, self.ELEMENT['taxrate_id'])[0].text self.assertEqual(d, '海关注册编码:') # 点击搜索结果item a = self.new_find_elements(By.ID, self.ELEMENT['text2'])[0].text self.new_find_elements(By.ID, self.ELEMENT['zgxgqy_clist'])[0].click() d = self.new_find_element(By.ID, self.ELEMENT['page_title']).text a1 = self.new_find_element(By.ID, self.ELEMENT['companyinfo']).text self.assertEqual(d, '进出口信用详情', msg='页面title不一致') self.assertEqual(a1, a, msg='进出口信用详情,进出口信用结果 「海关注册编码」不对应') self.driver.keyevent(4) # 输入搜索无结果-随便打 self.search_clean() self.search_input('随便打') e = self.is_toast_exist('无数据') # self.assertTrue(e, msg='toast提示未捕获') f = self.isElementExist(By.ID, self.ELEMENT['search_title']) self.assertFalse(f, msg='标识存在的话是有结果') # 输入搜索—有结果 宋庆龄 self.search_clean() self.search_input('宋庆龄') c1 = self.isElementExist(By.ID, self.ELEMENT['search_title']) self.assertTrue(c1, msg='应该有结果,展示无结果') self.search_clean() # 一键清除 self.search_recent_clear(2) f = self.isElementExist(By.ID, self.ELEMENT['search_recent_clear']) self.assertTrue(f, msg='一键清除-取消,最近搜索按钮还存在') self.search_recent_clear() g = self.isElementExist(By.ID, self.ELEMENT['search_recent_clear']) self.assertFalse(g, msg='一键清除-确认,最近搜索按钮不存在') h = self.isElementExist(By.XPATH, self.ELEMENT['hotsearch_bs']) self.assertTrue(h, msg='一键清除不存在,「热门搜素」存在') # 最近搜索记录 name_list = [ '马云', '孙凯', '王四会', '马丁', '韩磊', '李明', '向小叶', '蓝小凯', '李晓凯', '朱小凯', '赵小凯', '陈小凯' ] for name in name_list: log.info('输入搜索词:{}'.format(name)) self.search_input(name) self.search_clean() history_words = self.new_find_elements(By.XPATH, self.ELEMENT['hot_search']) for i in range(10): log.info("历史:{} vs 输入:{}".format(history_words[i].text, name_list[11 - i])) self.assertEqual(history_words[i].text, name_list[11 - i], '名字顺序不一致') except AssertionError: raise self.failureException() except Exception as e: log.error(e) raise Exception @getimage def test_021_qbfu_sfpm_p0(self): """ 司法拍卖功能正常使用 1、热门搜索 2、输入搜索—有结果 3、输入搜搜索---无结果 4、最近搜素 5、一键清除 6、搜索有结果点击查看详情 """ try: self.in_allserver('sfpm', 2) a = self.new_find_element(By.ID, self.ELEMENT['search_input']).text self.assertEqual(a, '请输入企业名称', msg='输入框提示信息不正确') # 随机点击热搜公司 b = self.hot_search() log.info('点击热搜公司{}'.format(b)) c = self.isElementExist(By.ID, self.ELEMENT['search_title']) self.assertTrue(c, msg='结果页没有找到数据') d = self.new_find_elements(By.XPATH, self.ELEMENT['taxrate_id'])[0].text d1 = self.new_find_elements(By.XPATH, self.ELEMENT['court_name'])[0].text self.assertEqual(d, '公告名:') self.assertEqual(d1, '法院:') # 点击搜索结果item a = self.new_find_elements(By.ID, self.ELEMENT['zgxgqy_clist'])[0].text self.new_find_elements(By.ID, self.ELEMENT['zgxgqy_clist'])[0].click() b = self.new_find_element(By.ID, self.ELEMENT['page_title']).text a1 = self.new_find_element(By.XPATH, self.ELEMENT['judicial_bt']).text self.assertEqual(b, '司法拍卖详情', msg='页面title不一致') self.assertEqual(a1, a, msg='司法拍卖详情,司法拍卖结果页 「拍卖标题」不对应') self.driver.keyevent(4) # 输入搜索无结果-随便打 self.search_clean() self.search_input('随便打') e = self.is_toast_exist('无数据') # self.assertTrue(e, msg='toast提示未捕获') f = self.isElementExist(By.ID, self.ELEMENT['search_title']) self.assertFalse(f, msg='标识存在的话是有结果') # 输入搜索—有结果 宋庆龄 self.search_clean() self.search_input('宋庆龄') c1 = self.isElementExist(By.ID, self.ELEMENT['search_title']) self.assertTrue(c1, msg='应该有结果,展示无结果') self.search_clean() # 一键清除 self.search_recent_clear(2) f = self.isElementExist(By.ID, self.ELEMENT['search_recent_clear']) self.assertTrue(f, msg='一键清除-取消,最近搜索按钮还存在') self.search_recent_clear() g = self.isElementExist(By.ID, self.ELEMENT['search_recent_clear']) self.assertFalse(g, msg='一键清除-确认,最近搜索按钮不存在') h = self.isElementExist(By.XPATH, self.ELEMENT['hotsearch_bs']) self.assertTrue(h, msg='一键清除不存在,「热门搜素」存在') # 最近搜索记录 name_list = [ '马云', '孙凯', '王四会', '马丁', '韩磊', '李明', '向小叶', '蓝小凯', '李晓凯', '朱小凯', '赵小凯', '陈小凯' ] for name in name_list: log.info('输入搜索词:{}'.format(name)) self.search_input(name) self.search_clean() history_words = self.new_find_elements(By.XPATH, self.ELEMENT['hot_search']) for i in range(10): log.info("历史:{} vs 输入:{}".format(history_words[i].text, name_list[11 - i])) self.assertEqual(history_words[i].text, name_list[11 - i], '名字顺序不一致') except AssertionError: raise self.failureException() except Exception as e: log.error(e) raise Exception
class CompanyBottomTabReport(MyTest): """ 公司底部TAB_报告 """ a = Read_Ex() ELEMENT = a.read_excel("company_bottom_tab") @classmethod def setUpClass(cls): super().setUpClass() cls.operation = Operation(cls.driver) cls.company = CompanyFunc(cls.driver, cls.ELEMENT) cls.account = Account() cls.user = cls.account.get_account('vip') cls.company_name = '四川同辉实业有限公司' @classmethod def tearDownClass(cls): cls.account.release_account(cls.user) super().tearDownClass() @getimage def test_gfxx_tab_bg_vip_0001(self): "VIP账号,不显示下载次数" global down_text down_text = None log.info(self.test_gfxx_tab_bg_vip_0001.__doc__) try: # 判断是否登录 status = self.operation.is_login() if not status: self.operation.login(phone_num=self.user, password=self.account.get_pwd()) # 搜索公司 self.company.search_company(self.company_name, self.device) # 是否有 问大家 条幅 self.company.ask_banner() # 点击 报告 按钮 self.operation.new_find_element( By.ID, self.ELEMENT['click_report']).click() down_status = self.operation.isElementExist( By.ID, self.ELEMENT['base_down_num']) if down_status: down_text = self.operation.new_find_element( By.ID, self.ELEMENT['base_down_num']).text self.assertFalse(down_status, "VIP账号不应该显示文案「{}」".format(down_text)) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_gfxx_tab_bg_vip_0002(self): "登录VIP账号,点击「报告」,下载专业版PDF,成功后进入到订单页" log.info(self.test_gfxx_tab_bg_vip_0002.__doc__) try: # 判断是否登录 status = self.operation.is_login() if not status: self.operation.login(phone_num=self.user, password=self.account.get_pwd()) # 搜索公司 self.company.search_company(self.company_name, self.device) # 是否有 问大家 条幅 self.company.ask_banner() # 点击 报告 按钮 self.operation.new_find_element( By.ID, self.ELEMENT['click_report']).click() # 选择报告格式为PDF self.company.report_format('pdf') # 获取 报告类型 2=专业版 3=基础版 4=董监高 report_type = self.operation.new_find_element( By.XPATH, self.ELEMENT['report_type'].format(2)).text # 点击 专业版报告的 立即下载 self.operation.new_find_element( By.ID, self.ELEMENT['vip_report']).click() # 是否进入订单页 order_title = self.operation.new_find_element( By.ID, self.ELEMENT['order_title']).text title = "我的订单" self.assertEqual( title, order_title, "预期title:{},待校验title:{},未进入到我的订单".format(title, order_title)) # 校验订单类型 order_type = self.operation.new_find_element( By.XPATH, self.ELEMENT['order_type']).text self.assertEqual( report_type, order_type, "预期订单类型:{},待校验订单类型:{}".format(report_type, order_type)) # 校验订单 报告目标 order_report_name = self.operation.new_find_element( By.XPATH, self.ELEMENT['order_report_name']).text self.assertEqual( self.company_name, order_report_name, "预期报告目标名:{},待校验目标名:{}".format(self.company_name, order_report_name)) # 校验订单 报告格式 order_report_format = self.operation.new_find_element( By.XPATH, self.ELEMENT['order_report_format']).text check_report_format = 'PDF' self.assertEqual( check_report_format, order_report_format, "预期报告格式:{},待校验格式:{}".format(check_report_format, order_report_format)) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_gfxx_tab_bg_vip_0003(self): "登录VIP账号,点击「报告」,下载专业版PDF+WORD,成功后进入到订单页" log.info(self.test_gfxx_tab_bg_vip_0003.__doc__) try: # 判断是否登录 status = self.operation.is_login() if not status: self.operation.login(phone_num=self.user, password=self.account.get_pwd()) # 搜索公司 self.company.search_company(self.company_name, self.device) # 是否有 问大家 条幅 self.company.ask_banner() # 点击 报告 按钮 self.operation.new_find_element( By.ID, self.ELEMENT['click_report']).click() # 选择报告格式为PDF self.company.report_format('pdf+word') # 获取 报告类型 2=专业版 3=基础版 4=董监高 report_type = self.operation.new_find_element( By.XPATH, self.ELEMENT['report_type'].format(2)).text # 点击 专业版报告的 立即下载 self.operation.new_find_element( By.ID, self.ELEMENT['vip_report']).click() # 是否进入订单页 order_title = self.operation.new_find_element( By.ID, self.ELEMENT['order_title']).text title = "我的订单" self.assertEqual( title, order_title, "预期title:{},待校验title:{},未进入到我的订单".format(title, order_title)) # 校验订单类型 order_type = self.operation.new_find_element( By.XPATH, self.ELEMENT['order_type']).text self.assertEqual( report_type, order_type, "预期订单类型:{},待校验订单类型:{}".format(report_type, order_type)) # 校验订单 报告目标 order_report_name = self.operation.new_find_element( By.XPATH, self.ELEMENT['order_report_name']).text self.assertEqual( self.company_name, order_report_name, "预期报告目标名:{},待校验目标名:{}".format(self.company_name, order_report_name)) # 校验订单 报告格式 order_report_format = self.operation.new_find_element( By.XPATH, self.ELEMENT['order_report_format']).text check_report_format = 'PDF+Word' self.assertEqual( check_report_format, order_report_format, "预期报告格式:{},待校验格式:{}".format(check_report_format, order_report_format)) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_gfxx_tab_bg_vip_0004(self): "登录VIP账号,点击「报告」,下载股权结构,成功后进入到订单页" log.info(self.test_gfxx_tab_bg_vip_0004.__doc__) try: # 判断是否登录 status = self.operation.is_login() if not status: self.operation.login(phone_num=self.user, password=self.account.get_pwd()) # 搜索公司 self.company.search_company(self.company_name, self.device) # 是否有 问大家 条幅 self.company.ask_banner() # 点击 报告 按钮 self.operation.new_find_element( By.ID, self.ELEMENT['click_report']).click() # 选择报告格式为PDF self.company.report_format('pdf') # 上滑一屏 self.operation.swipeUp() # 获取 报告类型 report_type = self.operation.new_find_element( By.XPATH, self.ELEMENT['report_type'].format(3)).text # 点击 报告的 立即下载 self.operation.new_find_element( By.XPATH, self.ELEMENT['vip_submit'].format(3)).click() # 是否进入订单页 order_title = self.operation.new_find_element( By.ID, self.ELEMENT['order_title']).text title = "我的订单" self.assertEqual( title, order_title, "预期title:{},待校验title:{},未进入到我的订单".format(title, order_title)) # 校验订单类型 order_type = self.operation.new_find_element( By.XPATH, self.ELEMENT['order_type']).text self.assertIn( report_type, order_type, "预期订单类型:{},待校验订单类型:{}".format(report_type, order_type)) # 校验订单 报告目标 order_report_name = self.operation.new_find_element( By.XPATH, self.ELEMENT['order_report_name']).text self.assertEqual( self.company_name, order_report_name, "预期报告目标名:{},待校验目标名:{}".format(self.company_name, order_report_name)) # 校验订单 报告格式 order_report_format = self.operation.new_find_element( By.XPATH, self.ELEMENT['order_report_format']).text check_report_format = 'PDF' self.assertEqual( check_report_format, order_report_format, "预期报告格式:{},待校验格式:{}".format(check_report_format, order_report_format)) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_gfxx_tab_bg_vip_0005(self): "登录VIP账号,校验董监高最对选择6人" log.info(self.test_gfxx_tab_bg_vip_0005.__doc__) try: company_name = "南昌亨得利股份有限公司" # 判断是否登录 status = self.operation.is_login() if not status: self.operation.login(phone_num=self.user, password=self.account.get_pwd()) # 搜索公司 self.company.search_company(company_name, self.device) # 是否有 问大家 条幅 self.company.ask_banner() # 点击 报告 按钮 self.operation.new_find_element( By.ID, self.ELEMENT['click_report']).click() # 上滑一屏 self.operation.swipeUp() # 获取 报告类型 report_type = self.operation.new_find_element( By.XPATH, self.ELEMENT['report_type'].format(2)).text # 点击 报告的 立即下载 self.operation.new_find_element( By.XPATH, self.ELEMENT['vip_submit'].format(2)).click() # 是否弹出选择人员页 select_people_title = self.operation.isElementExist( By.ID, self.ELEMENT['select_people_title']) self.assertTrue(select_people_title, "选择人员页未展示") # people_page = self.operation.new_find_elements(By.XPATH, self.ELEMENT['people_page']) select_people_list = list() for i in range(1, 8): people = self.operation.new_find_element( By.XPATH, self.ELEMENT['people_page'].format(i)) if i < 7: select_people_list.append(people.text) if i != 1: people.click() log.info("选择的人员列表:{}".format(select_people_list)) toast = self.operation.get_toast() expect_toast = "最多可选6个人" self.assertEqual( expect_toast, toast, "预期toast:{},实际toast:{}".format(expect_toast, toast)) # 点击 完成 按钮 self.operation.new_find_element( By.ID, "com.tianyancha.skyeye:id/tv_complete").click() # 是否进入订单页 order_title = self.operation.new_find_element( By.ID, self.ELEMENT['order_title']).text title = "我的订单" self.assertEqual( title, order_title, "预期title:{},待校验title:{},未进入到我的订单".format(title, order_title)) # 校验订单类型 order_type = self.operation.new_find_element( By.XPATH, self.ELEMENT['order_type']).text self.assertIn( report_type, order_type, "预期订单类型:{},待校验订单类型:{}".format(report_type, order_type)) # 校验订单 报告目标 order_report_name = self.operation.new_find_element( By.XPATH, self.ELEMENT['order_report_name']).text self.assertEqual( company_name, order_report_name, "预期报告目标名:{},待校验目标名:{}".format(company_name, order_report_name)) # 校验相关人员 people_result = self.operation.new_find_element( By.XPATH, "//*[@resource-id='com.tianyancha.skyeye:id/pre_paid_recycler']/android.widget.LinearLayout[1]//*[@resource-id='com.tianyancha.skyeye:id/person_about_tv']" ).text people_result_list = people_result.split('、') self.assertListEqual( select_people_list, people_result_list, "选择列表:{}、实际列表:{}".format(select_people_list, people_result_list)) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e @getimage def test_gfxx_tab_bg_vip_0006(self): "信用报告_校验邮箱格式" log.info(self.test_gfxx_tab_bg_vip_0006.__doc__) try: # 判断是否登录 status = self.operation.is_login() if not status: self.operation.login(phone_num=self.user, password=self.account.get_pwd()) # 搜索公司 self.company.search_company(self.company_name, self.device) # 是否有 问大家 条幅 self.company.ask_banner() # 点击 报告 按钮 self.operation.new_find_element( By.ID, self.ELEMENT['click_report']).click() # 校验 非邮箱 格式 self.operation.adb_send_input(By.ID, self.ELEMENT['email_report'], 'adfads', self.device) # 点击 专业版报告的 立即下载 self.operation.new_find_element( By.ID, self.ELEMENT['vip_report']).click() toast = self.operation.get_toast() email_format = "邮箱格式不正确" self.assertEqual( email_format, toast, "预期toast:{},待校验toast:{}".format(email_format, toast)) # 校验 带汉字 格式 self.operation.adb_send_input(By.ID, self.ELEMENT['email_report'], '时代峻峰了@ds.com', self.device) # 点击 专业版报告的 立即下载 self.operation.new_find_element( By.ID, self.ELEMENT['vip_report']).click() toast = self.operation.get_toast() self.assertEqual( email_format, toast, "预期toast:{},待校验toast:{}".format(email_format, toast)) # 校验 带特殊字符 格式 self.operation.adb_send_input(By.ID, self.ELEMENT['email_report'], '[email protected]', self.device) # 点击 专业版报告的 立即下载 self.operation.new_find_element( By.ID, self.ELEMENT['vip_report']).click() toast = self.operation.get_toast() self.assertEqual( email_format, toast, "预期toast:{},待校验toast:{}".format(email_format, toast)) except AssertionError: raise self.failureException() except Exception as e: log.error(error_format(e)) raise e