class TestSharePage(): @pytest.fixture(scope="function") def share_init(self): self.base = Base(self.driver) self.home = HomePage(self.driver) self.pubmethod = PubMethod(self.driver) self.more = MorePage(self.driver) self.share = SharePage(self.driver) self.news = NewsPage(self.driver) logging.info("") logging.info("****开始执行用例****") self.base.unlock() self.pubmethod.stopApp(BROWSER_PACKAGE_NAME) self.pubmethod.startApp(BROWSER_PACKAGE_NAME) self.pubmethod.mbackToHomeOrNegative() yield logging.info("****用例执行结束****") logging.info("") @allure.story('测试分享网页到便签') @pytest.mark.P0 def test001ShareWebPage(self, share_init): ''' 1、进入浏览器,点击导航网站-》安居客 2、在安居客网页中点击底部-》工具栏图标按钮 3、点击底部工具栏-》点击分享按钮 4、点击分享面板-》便签按钮到便签 5、断言便签应用中是否存在分享的内容 ''' self.more.clickDaoHang(HOME_ANJUKE) self.home.clickMore() self.share.clickWebPageShare() self.share.clickNotes() self.base.assertTrue(SHARE_TEXTTITLE) @allure.story('测试分享资讯文章到便签') @pytest.mark.P0 def test002ShareNewsPage(self, share_init): ''' 1、进入浏览器,点击"资讯"按钮 2、在资讯流列表点击“倒三角”,进入频道管理页面 3、打开“健康”频道 4、打开资讯文章详情页 5、点击分享按钮 6、点击分享面板-》便签按钮到便签 7、断言便签应用中是否存在分享的内容 8、点击mback返回资讯流列表 9、断言资讯流列表“资讯”按钮存在 ''' self.home.clickInformation() self.news.clickNewsTriangle() self.news.clickNewsChannel(NEWS_CHANNEL_HEALTH) self.news.clickOpenNewsArticle() self.base.assertTrue(NEWS_PAGE_MOREMENU) self.share.clickNewsArticleShare() self.share.clickNotes() self.base.assertTrue(SHARE_TEXT)
class TestPersonalCenterPage(): @pytest.fixture(scope="function") def personalCenter_init(self): self.base = Base(self.driver) self.home = HomePage(self.driver) self.pubmethod= PubMethod(self.driver) self.toolbarpanel = ToolBarPanelPage(self.driver) self.personalcenter = PersonalCenterPage(self.driver) self.news = NewsPage(self.driver) logging.info("") logging.info("****开始执行用例****") self.pubmethod.stopApp(BROWSER_PACKAGE_NAME) self.pubmethod.startApp(BROWSER_PACKAGE_NAME) self.pubmethod.mbackToHomeOrNegative() yield logging.info("****用例执行结束****") logging.info("") # ---wmw @allure.story('测试个人中心账号登录页') def test001PersonalCenterPage(self, personalCenter_init): ''' 1、点击工具菜单 2、点击工具面板--我的图标 3、未登录时,点击我的图标 4、断言页面是否为登录账号页面 ''' self.home.clickMore() self.toolbarpanel.clickFlymeme() self.personalcenter.clickFlymemeB() self.base.assertTrue(PERSONAL_CENTER_REGISTER) # ---wmw @allure.story('测试个人中心账号,进入评论详情,检查页面显示是否正常') def test002PersonalCenterPage(self, personalCenter_init): ''' 1、点击工具菜单 2、点击工具面板--我的图标 3、判断账号是否登陆 4、点击我的消息 5、默认点击第一条消息 ''' self.home.clickMore() self.toolbarpanel.clickFlymeme() self.personalcenter.elementIsLandFlymeme() self.personalcenter.clickMyMessages() self.personalcenter.clickPraisedMyMessages() afterMessagesTxt = self.pubmethod.getBaiduApiText(PERSONAL_CENTER_COMMENT_DETAILS) self.personalcenter.clickCommentary() beforeMessagesTxt = self.pubmethod.getBaiduApiText(NEWS_PAGE_MOREMENU) self.base.assertEqual(afterMessagesTxt, beforeMessagesTxt, True) @allure.story('测试个人中心账号,进入评论详情,检查页面显示是否正常') def test003PersonalCenterPage(self, personalCenter_init): ''' 1、点击工具菜单 2、点击工具面板--我的图标 3、判断账号是否登陆 4、点击我的评论 5、默认点击第一条消息 ''' self.home.clickMore() self.toolbarpanel.clickFlymeme() self.personalcenter.elementIsLandFlymeme() self.personalcenter.clickMyComment() afterCommentTxt = self.pubmethod.getBaiduApiText(PERSONAL_CENTER_MY_COMMENT_A) self.personalcenter.clickPraisedMyComment() beforeCommentTxt = self.pubmethod.getBaiduApiText(NEWS_PAGE_MOREMENU) self.base.assertEqual(afterCommentTxt, beforeCommentTxt, True) @allure.story('测试小游戏是否正常打开') def test004PersonalCenterPage(self,personalCenter_init): ''' 1、点击工具栏面板头像图标,进入个人中心 2、点击小游戏 ''' self.home.clickMore() self.toolbarpanel.clickFlymeme() self.personalcenter.clickMiniGame() self.base.browserWatcher() self.pubmethod.clearApp(HOT_GAME) @allure.story('测试资讯文章评论是否提交正常') def test005RefreshNewsOpenArticle(self,personalCenter_init): ''' 1、清除浏览器数据,进入军事频道 2、点击第一篇文章进入文章详情页,点击评论输入内容 3、断言页面是否存在输入内容 4、在个人中心评论页面删除之前输入的测试评论内容,断言测试评论不存在 ''' self.pubmethod.clearApp(BROWSER_PACKAGE_NAME) self.pubmethod.startApp(BROWSER_PACKAGE_NAME) # 清除数据后首次进入浏览器,点击隐私弹窗同意按钮 self.pubmethod.clickPrivacyAgree() # 点击权限弹窗“始终允许”按钮,进入浏览器 # self.pubmethod.clickPermissionAgree() self.base.browserWatcher() sleep(5) self.home.clickInformation() # 点击“倒三角”进入频道管理页面 self.news.clickNewsTriangle() sleep(2) # 点击“星座”频道打开,进入资讯流列表 self.news.clickNewsChannel(NEWS_CHANNEL_CONSTELLATION) self.news.dropScrollNews() self.news.clickOpenNewsArticle() self.base.scrollToElement(NEWS_ALL_COMMENTS) self.news.clickCommentBox() self.news.inputFocalPositionText() self.news.clickRelease() self.base.assertTrue(NEWS_INPUT_COMMENTS) sleep(4) # 点击mback self.pubmethod.clickBack() self.home.clickMore() self.toolbarpanel.clickFlymeme() self.personalcenter.clickMyComment() self.personalcenter.clickDelete() self.personalcenter.clickDeleteBox() self.pubmethod.clickBack() self.personalcenter.clickMyComment() self.base.assertTrue(NEWS_INPUT_COMMENTS, False) @allure.story('测试修改输入法') def test006PersonalCenterPage(self, personalCenter_init): ''' 1、修改输入法 ''' # 点击mback self.pubmethod.clickBack() self.pubmethod.startApp(MEIZU_SETTINGS) self.base.scrollToElement(LANGUAGE_AND_TIME) sleep(5) self.personalcenter.clickLanguageAndTime() self.personalcenter.clickInputMethod() self.personalcenter.clickSettingButton() self.personalcenter.clickSouGou() self.base.assertTrue(INPUT_BABIT) @allure.story('测试退出账号') def test007PersonalCenterPage(self, personalCenter_init): ''' 1、退出Flyme账号 ''' self.home.clickMore() self.toolbarpanel.clickFlymeme() self.personalcenter.clickOutAccount() self.base.assertTrue(PERSONAL_CENTER_NOT_LOGGED_IN)
class TestNegativePage(): @pytest.fixture(scope="function") def collectionAndHistory_init(self): self.base = Base(self.driver) self.home = HomePage(self.driver) self.negativescreen = NegativeScreenPage(self.driver) self.addtohome = AddToHomePage(self.driver) self.pubmethod = PubMethod(self.driver) self.searchpanel = SearchPanelPage(self.driver) self.toolbarpanel = ToolBarPanelPage(self.driver) self.collectionandhistory = CollectionAndHistoryPage(self.driver) self.news = NewsPage(self.driver) self.windowstab = WindowsTabPage(self.driver) logging.info("") logging.info("****开始执行用例****") self.pubmethod.stopApp(BROWSER_PACKAGE_NAME) self.pubmethod.startApp(BROWSER_PACKAGE_NAME) self.pubmethod.mbackToHomeOrNegative() yield logging.info("****用例执行结束****") logging.info("") @allure.story('测试取消清空历史功能 —— LJX') @pytest.mark.P1 def test001CleanUpHistoryCancel(self, collectionAndHistory_init): ''' 1、先判断是否存在历史数据,不存在则造一条历史数据,存在则不处理 2、点击工具栏中more菜单,再点击工具面板的“清空历史”,清空历史的弹框选择取消 3、断言不存在“暂无历史记录”元素 ''' # 制造一条历史数据 self.collectionandhistory.makeHistory(1) # 点击工具面板的“清空历史”,弹框选择取消 self.home.clickMore() self.toolbarpanel.clickToolsPanel(CLEAN_UP_HISTORY) self.toolbarpanel.clickToolsPanel(CLEAN_UP_CANCEL) # 再次进入工具面板的“清空历史”,断言页面不存在“暂无历史数据”元素 self.home.clickMore() self.toolbarpanel.clickToolsPanel(HISTORY) self.base.assertTrue(HISTORY_PAGE, False, timeout=3) @allure.story('测试确认清空历史功能 —— LJX') @pytest.mark.P1 def test002CleanUpHistory(self, collectionAndHistory_init): ''' 1、先判断是否存在历史数据,不存在则造一条历史数据,存在则不处理 2、点击工具栏中more菜单,再点击工具面板的“清空历史”,清空历史的弹框选择确定 3、断言存在“暂无历史记录”元素 ''' # 制造一条历史数据 self.collectionandhistory.makeHistory(1) # 点击工具面板的“清空历史”,弹框选择确定 self.home.clickMore() self.toolbarpanel.clickToolsPanel(CLEAN_UP_HISTORY) self.toolbarpanel.clickToolsPanel(CLEAN_UP) # 再次进入工具面板的“清空历史”,断言页面存在“暂无历史数据”元素 self.home.clickMore() self.toolbarpanel.clickToolsPanel(HISTORY) self.base.assertTrue(HISTORY_PAGE, timeout=3) @allure.story('收藏一篇文章,收藏夹下显示该文章;取消收藏后,收藏夹下不显示该文章 —— LJX') @pytest.mark.P1 def test003CollectArticle(self, collectionAndHistory_init): ''' 1、进入资讯流的健康频道,下拉刷新,获取第1篇文章第标题,并收藏该文章,进入收藏夹获取第1条记录的标题,断言两个标题相等 2、在收藏夹点击进入第1条记录详情,取消收藏,返回到收藏夹,获取第1条记录第标题,断言标题不相等 ''' # 进入资讯流,进入频道管理选择健康频道,下拉刷新 self.home.clickInformation() self.news.clickNewsTriangle() self.news.clickNewsChannel(NEWS_CHANNEL_HEALTH) self.news.dropScrollNews() # 获取文章标题,并收藏该文章 ArticleTitle = self.news.getNewsArticleTitle() self.news.clickOpenNewsArticle() self.news.clickArticleCollectPosition() # 返回上一层,进入我的收藏 self.news.clickNewsBack() self.home.clickMore() self.toolbarpanel.clickToolsPanel(MY_COLLECTION) # 获取我的收藏页第1条记录的标题,断言收藏的文章标题与收藏夹第1条记录的标题一致 CollectionTitle = self.collectionandhistory.getCollectionTitle() self.base.assertEqual(ArticleTitle, CollectionTitle, True) # 点击进入我的收藏第1条记录,取消收藏 self.collectionandhistory.clickCollection(COLLECTION_ID) self.news.clickArticleCollectPosition() # 返回上一层,重新进入我的收藏,获取第1条记录标题 self.news.clickNewsBack() self.home.clickMore() self.toolbarpanel.clickToolsPanel(MY_COLLECTION) CollectionTitle = self.collectionandhistory.getCollectionTitle() # 断言取消收藏的文章标题与收藏夹第1条记录的标题不一致 self.base.assertEqual(ArticleTitle, CollectionTitle, False) @allure.story('打开网页-添加收藏-编辑-新建收藏文件夹-收藏进去-能改的都改一遍-收藏夹打开该收藏正常 —— LJX') @pytest.mark.P1 def test004CollectWebToFolder(self, collectionAndHistory_init): ''' 1、先删除"自动化测试"文件夹,点击搜索框,进入搜索面板,点击搜索,进入搜索结果页 2、添加收藏,编辑收藏文件夹,新增一个文件夹,并选择添加到该文件夹下 3、进入收藏夹该新增文件夹下,断言是否存在1条记录 ''' # 先删除“自动化测试”文件夹 # self.collectionandhistory.deleteCollectFolder() # 点击搜索面板第1个热词,进入搜索结果页 self.home.clickHomeSearch() self.searchpanel.clickSearchInto() # 添加到收藏夹,编辑位置信息,新建"自动化测试"文件夹并收藏到该文件夹下 self.home.clickMore() sleep(1) self.toolbarpanel.clickToolsPanel(ADD_COLLECTION) self.collectionandhistory.clickAddCollectFolder(COLLECT_EDIT_ID) sleep(1) try: self.collectionandhistory.clickAddCollectFolder( COLLECT_FOLDER_POSITION) except Exception as e: logging.info('忽略点击编辑过程中的报错') self.collectionandhistory.clickAddCollectFolder(NEW_FOLDER_ID) self.collectionandhistory.inputCollectFolderName() try: self.collectionandhistory.clickAddCollectFolder(NEW_FOLDER_CONFIRM) except Exception as e: logging.info('忽略新建文件夹时点击确定出现的报错') try: self.collectionandhistory.clickAddCollectFolder( COLLECT_NEW_FOLDER_NAME) except Exception as e: logging.info('忽略点击"自动化测试"文件夹的报错') self.collectionandhistory.clickAddCollectFolder( COLLECT_NEW_FOLDER_POSITION) # 编辑网页URL、网页名称为百度网页,点击"确认",收藏到收藏夹中 self.collectionandhistory.setText(ADD_COLLECT_URL, COLLECT_NAME) self.collectionandhistory.setText(ADD_COLLECT_ADDRESS, COLLECT_URL) self.collectionandhistory.clickAddCollectFolder(CONFIRM_ID) # 等待2秒,"已添加到收藏"toast消失后才能定位到其它元素 sleep(2) # 进入收藏夹新建的"自动化测试"文件夹,断言是否存在"百度一下" self.home.clickMore() sleep(1) self.toolbarpanel.clickToolsPanel(MY_COLLECTION) self.collectionandhistory.clickCollection(COLLECT_NEW_FOLDER_NAME) self.base.assertTrue(COLLECT_NAME) # 点击进入"百度一下",监听地理位置弹框,断言存在'百度一下,你就知道' self.collectionandhistory.clickCollection(COLLECT_NAME) self.base.browserWatcher() sleep(2) self.base.assertTrue(BAIDU_HOME) @allure.story('添加一个网页到收藏/主页常用/桌面,查看是否添加到对应目录下并且点击能正常打开 —— LJX') @pytest.mark.P1 def test005CollectWebPage(self, collectionAndHistory_init): ''' 1、点击搜索框,进入搜索面板,获取第1个热词文本,点击第1个热词,进入搜索结果页 2、添加到收藏夹,进入收藏夹获取第1条记录文本,断言是否刚添加收藏夹的热词 3、添加到主页常用,进入负一屏,断言当前页面是否存在刚收藏的热词元素 4、发送到桌面,退出浏览器,断言桌面是否存在刚发送到桌面到热词元素 ''' # 进入搜索面板,获取第1个热词文本,并进入该热词的搜索结果页 self.home.clickHomeSearch() hotSearchWord = self.searchpanel.clickHotWords() self.searchpanel.clickSearchHistory() # 添加到收藏夹 self.home.clickMore() sleep(1) self.toolbarpanel.clickToolsPanel(ADD_COLLECTION) self.collectionandhistory.clickAddCollectFolder(ADD_TO_COLLECTION) # 等待2秒,"已添加到收藏"toast提示消失后才能定位到其它元素 sleep(2) # 进入收藏夹新建的文件夹下,断言是否存在数据 self.home.clickMore() sleep(1) self.toolbarpanel.clickToolsPanel(MY_COLLECTION) # 获取我的收藏页第1条记录的标题 CollectionTitle = self.collectionandhistory.getCollectionTitle() self.base.assertEqual(hotSearchWord, CollectionTitle, True) # 返回上一层,重新添加收藏-》添加到主页常用 self.collectionandhistory.clickAddCollectFolder(COLLECTION_BACK_ID) self.home.clickMore() sleep(1) self.toolbarpanel.clickToolsPanel(ADD_COLLECTION) self.collectionandhistory.clickAddCollectFolder(ADD_TO_NEGATIVE) # 等待2秒,"已添加到主页常用"toast提示消失后才能定位到其它元素 self.home.clickHome() # 进入负一屏,断言是否存在添加到搜索热词 self.home.clickHomeOnPage(MYCOLLECTION) self.base.assertTrue(hotSearchWord, True, timeout=3) # 返回上一层,重新添加收藏-》发送到桌面3次 self.pubmethod.clickBack() self.collectionandhistory.sendToDeskCollect() # 等待2秒,"已添加到主页常用"toast提示消失后才能定位到其它元素 sleep(2) self.pubmethod.stopApp(BROWSER_PACKAGE_NAME) self.base.assertTrue(hotSearchWord, True, timeout=3) @allure.story('我的收藏-长按单个-删除,检查是否正常删除 —— LJX') @pytest.mark.P1 def test006DeleteCollectionOne(self, collectionAndHistory_init): ''' 1、造一条收藏记录 2、进入首页,再进入收藏夹,获取第1条记录的标题 3、长按1条记录,删除,断言被删除记录不存在 ''' # 造1条收藏记录 self.collectionandhistory.makeCollection(1) # 进入首页,再进入收藏夹 self.home.clickHomeOnPage(HOME_PAGE) self.home.clickMore() self.toolbarpanel.clickToolsPanel(MY_COLLECTION) # 获取收藏夹第1条记录标题,然后长按删除 CollectionTitle = self.collectionandhistory.getCollectionTitle() self.collectionandhistory.longClickCollection(COLLECTION_ID) self.collectionandhistory.clickCollectDelete() self.collectionandhistory.clickCollection(FRAME_DELETE_ID) # 断言当前页面不存在已删除到收藏记录 self.base.assertTrue(CollectionTitle, False, timeout=3) @allure.story('我的收藏-长按多个-删除,检查是否正常删除 —— LJX') @pytest.mark.P1 def test007DeleteCollectionMore(self, collectionAndHistory_init): ''' 1、造3条收藏记录 2、进入首页,再进入收藏夹 3、长按3条记录,删除,断言被删除的记录不存在 ''' # 造3条收藏记录 self.collectionandhistory.makeCollection(3) # 进入首页,再进入收藏夹 self.home.clickHomeOnPage(HOME_PAGE) self.home.clickMore() self.toolbarpanel.clickToolsPanel(MY_COLLECTION) # 获取收藏夹第1、2、3条记录的标题 CollectionTitleOne = self.collectionandhistory.getCollectionTitle(0) CollectionTitleTwo = self.collectionandhistory.getCollectionTitle(1) CollectionTitleThree = self.collectionandhistory.getCollectionTitle(2) # 删除第1、2、3条记录 self.collectionandhistory.longClickCollection(COLLECTION_ID, 3) self.collectionandhistory.clickCollectDelete() self.collectionandhistory.clickCollection(FRAME_DELETE_ID) # 断言第1、2、3条记录的标题不存在 self.base.assertTrue(CollectionTitleOne, False, timeout=3) self.base.assertTrue(CollectionTitleTwo, False, timeout=3) self.base.assertTrue(CollectionTitleThree, False, timeout=3) @allure.story('历史-长按1个-删除,检查是否正常删除 —— LJX') @pytest.mark.P1 def test008DeleteHistoryOne(self, collectionAndHistory_init): ''' 1、造一条历史记录 2、进入首页,再进入历史 3、长按1条记录,删除,断言被删除记录不存在 ''' # 制造一条历史数据 self.collectionandhistory.makeHistory(1) # 进入首页,再进入历史 self.home.clickHomeOnPage(HOME_PAGE) self.home.clickMore() self.toolbarpanel.clickToolsPanel(HISTORY) # 获取第1条记录的标题,并长按删除 HistoryTitle = self.collectionandhistory.getHistoryTitle(1) self.collectionandhistory.longClickHistory(HISTORY_ID) self.collectionandhistory.clickHistoryDelete() self.collectionandhistory.clickCollection(FRAME_DELETE_ID) # 断言当前页面不存在已删除到历史记录 self.base.assertTrue(HistoryTitle, False, timeout=3) @allure.story('历史-长按多个-删除,检查是否正常删除 —— LJX') @pytest.mark.P1 def test009DeleteHistoryMore(self, collectionAndHistory_init): ''' 1、造3条历史记录 2、进入首页,再进入历史 3、长按3条记录,删除,断言被删除的3条记录不存在 ''' # 制造3条历史数据 self.collectionandhistory.makeHistory(3) # 进入首页,再进入历史 self.home.clickHomeOnPage(HOME_PAGE) self.home.clickMore() self.toolbarpanel.clickToolsPanel(HISTORY) # 获取历史第1、2、3条记录的标题 HistoryTitleOne = self.collectionandhistory.getHistoryTitle(1) HistoryTitleTwo = self.collectionandhistory.getHistoryTitle(2) HistoryTitleThree = self.collectionandhistory.getHistoryTitle(3) # 删除第1、2、3条记录 self.collectionandhistory.longClickHistory(HISTORY_ID, 3) self.collectionandhistory.clickHistoryDelete() self.collectionandhistory.clickCollection(FRAME_DELETE_ID) # 断言第1、2、3条记录的标题不存在 self.base.assertTrue(HistoryTitleOne, False, timeout=3) self.base.assertTrue(HistoryTitleTwo, False, timeout=3) self.base.assertTrue(HistoryTitleThree, False, timeout=3) @allure.story('我的收藏-长按单个-发送至桌面,检查是否成功添加至桌面且正常打开 —— LJX') @pytest.mark.P1 def test10AddToDeskOne(self, collectionAndHistory_init): ''' 1、进入首页,再进入收藏夹 2、长按1条记录,发送到桌面3次,断言桌面存在这条记录 3、桌面点击这条记录,断言当前页面存在记录标题和工具入口 ''' self.home.clickMore() self.toolbarpanel.clickToolsPanel(MY_COLLECTION) # 获取第1条记录的标题,长按第1条记录并发送到桌面3次 CollectionTitle = self.collectionandhistory.getCollectionTitle() self.collectionandhistory.clickCollectAddToDesk() # 退出浏览器,断言是否存在该记录 self.pubmethod.stopApp(BROWSER_PACKAGE_NAME) self.base.assertTrue(CollectionTitle, True, timeout=3) # 桌面点击打开该记录,断言是否正常打开 self.base.clickByElement(CollectionTitle, '发送到桌面的收藏') self.base.assertTrue(CollectionTitle, True, timeout=3) self.base.assertTrue(HOME_MORE, True, timeout=3) @allure.story('我的收藏-长按多个-发送至桌面,检查是否成功添加至桌面且正常打开 —— LJX') @pytest.mark.P1 def test011AddToDeskMore(self, collectionAndHistory_init): ''' 1、进入首页,再进入收藏夹,长按第1、2、3条记录,发送到桌面3次,断言桌面存在这3条记录 2、桌面点击第3条记录,断言当前页面存在记录标题和工具入口 ''' self.home.clickMore() self.toolbarpanel.clickToolsPanel(MY_COLLECTION) # 获取前3条记录的标题,长按前3条记录并发送到桌面3次 CollectionTitleOne = self.collectionandhistory.getCollectionTitle(0) CollectionTitleTwo = self.collectionandhistory.getCollectionTitle(1) CollectionTitleThree = self.collectionandhistory.getCollectionTitle(2) self.collectionandhistory.clickCollectAddToDesk(3) # 退出浏览器,断言是否存在该记录 self.pubmethod.stopApp(BROWSER_PACKAGE_NAME) self.base.assertTrue(CollectionTitleOne, True, timeout=3) self.base.assertTrue(CollectionTitleTwo, True, timeout=3) self.base.assertTrue(CollectionTitleThree, True, timeout=3) # 桌面点击打开第3条记录,断言是否正常打开 self.base.clickByElement(CollectionTitleThree, '发送到桌面的收藏') self.base.assertTrue(CollectionTitleThree, True, timeout=3) self.base.assertTrue(HOME_MORE, True, timeout=3) @allure.story('我的收藏-长按1条记录-新窗口打开,检查是否正常打开且多窗口数量+1 —— LJX') @pytest.mark.P1 def test12NewWindowOpenOne(self, collectionAndHistory_init): ''' 1、进入收藏夹,长按1条记录,新窗口打开,断言正常打开且新窗口数量增加 ''' # 收藏一个网页到收藏夹 self.home.clickHomeSearch() hotSearchWord = self.searchpanel.clickHotWords() self.searchpanel.clickSearchHistory() self.home.clickMore() self.toolbarpanel.clickToolsPanel(ADD_COLLECTION) self.collectionandhistory.clickAddCollectFolder(ADD_TO_COLLECTION) # 返回上一层 self.pubmethod.clickBack() # 获取当前多窗口数量 winNumBefore = self.windowstab.getWindowsNum() self.home.clickMore() self.toolbarpanel.clickToolsPanel(MY_COLLECTION) self.collectionandhistory.longClickCollection(COLLECTION_ID) self.collectionandhistory.clickCollectNewWindowOpen() # 新窗口打开后的窗口数量 winNumAfter = self.windowstab.getWindowsNum() self.base.assertTrue(hotSearchWord, timeout=3) self.base.assertEqual(winNumBefore, winNumAfter, False, timeout=3) @allure.story('我的收藏-长按3条记录-新窗口打开,检查是否正常打开且多窗口数量+3 —— LJX') @pytest.mark.P1 def test13NewWindowOpenMore(self, collectionAndHistory_init): ''' 1、进入收藏夹,长按多条记录,新窗口打开,断言正常打开且新窗口数量+3 ''' # 收藏一个网页到收藏夹 self.home.clickHomeSearch() hotSearchWord = self.searchpanel.clickHotWords() self.searchpanel.clickSearchHistory() self.home.clickMore() self.toolbarpanel.clickToolsPanel(ADD_COLLECTION) self.collectionandhistory.clickAddCollectFolder(ADD_TO_COLLECTION) # 返回上一层 self.pubmethod.clickBack() # 获取当前多窗口数量 winNumBefore = self.windowstab.getWindowsNum() self.home.clickMore() self.toolbarpanel.clickToolsPanel(MY_COLLECTION) self.collectionandhistory.longClickCollection(COLLECTION_ID, 3) self.collectionandhistory.clickCollectNewWindowOpen() # 新窗口打开后的窗口数量 winNumAfter = self.windowstab.getWindowsNum() self.base.assertTrue(hotSearchWord, timeout=3) self.base.assertEqual(int(winNumBefore) + 3, int(winNumAfter), True, timeout=3) @allure.story('开启无痕模式,访问网站,不会生成历史记录 —— LJX') @pytest.mark.P1 def test14NoMarking(self, collectionAndHistory_init): ''' 1、获取历史第1条记录标题 2、打开无痕模式,点击一个热词进行搜索 3、返回上一层,获取历史第1条记录标题 4、断言历史第1条记录的标题没有改变 ''' self.home.clickMore() self.toolbarpanel.clickToolsPanel(HISTORY) historyTitleBefore = self.collectionandhistory.getHistoryTitle(1) # 返回上一层 self.pubmethod.clickBack() self.home.clickMore() self.collectionandhistory.openNoMarking() # 造一条历史数据 self.collectionandhistory.makeHistory(1) self.home.clickMore() self.toolbarpanel.clickToolsPanel(HISTORY) historyTitleAfter = self.collectionandhistory.getHistoryTitle(1) self.base.assertEqual(historyTitleBefore, historyTitleAfter, True, timeout=3)
class TestSetUpPage(): @pytest.fixture(scope="function") def setUp_init(self): self.base = Base(self.driver) self.home = HomePage(self.driver) self.pubmethod = PubMethod(self.driver) self.searchpanel = SearchPanelPage(self.driver) self.toolbarpanel = ToolBarPanelPage(self.driver) self.setup = SetUpPage(self.driver) self.news = NewsPage(self.driver) logging.info("") logging.info("****开始执行用例****") self.pubmethod.stopApp(BROWSER_PACKAGE_NAME) self.pubmethod.startApp(BROWSER_PACKAGE_NAME) self.base.browserWatcher() self.home.clickHome() self.home.clickHomeOnPage(HOME_PAGE) yield logging.info("****用例执行结束****") logging.info("") # ---wmw @allure.story('测试设置清除浏览器') def test001SetUpPage(self, setUp_init): ''' 1、点击主页工具菜单 2、点击设置 3、点击清除浏览器数据 4、点击Cookies 5、点击账号密码 6、点击地理位置授权 7、点击清除数据按钮 8、点击完成按钮 9、点击mback返回 10、点击首页搜索框 11、搜索框输入文本 12、点击进入 13、断言页面是否会重新提示地址位置授权 ''' # 点击主页工具菜单 self.home.clickMore() # 点击设置 self.toolbarpanel.clickSetUp() # 点击清除浏览器数据 self.setup.clickClearCoolkies() # 点击Cookies self.setup.clickCookies() # 点击账号密码 self.setup.clickAccountsAndPasswords() # 点击地理位置授权 self.setup.clickLocationAccess() # 点击清除数据按钮 self.setup.clickClearData() # 点击完成按钮 self.setup.clickDone() # 点击mback self.pubmethod.clickBack() # 点击首页搜索框 self.home.clickHomeSearch() # 搜索框输入文本"www.baidu.com" self.setup.inputbaidu() # 点击进入 self.searchpanel.clickSearchInto() # 断言页面是否会重新提示地址位置授权 self.base.assertTrue(GEOGRAPHY) # ---wmw @allure.story('测试切换搜索引擎') def test002SetUpPage(self, setUp_init): ''' 1、点击主页工具菜单 2、点击设置 3、点击搜索引擎 4、点击百度 5、点击mback返回 6、点击首页搜索框 7、搜索框输入123 8、点击搜索 9、# 断言页面是否存在百度 ''' # 点击主页工具菜单 self.home.clickMore() # 点击设置 self.toolbarpanel.clickSetUp() # 点击搜索引擎 self.setup.clickSearchEngine() # 点击百度 self.setup.clickBaidu() # 点击mback self.pubmethod.clickBack() # 点击首页搜索框 self.home.clickHomeSearch() # 搜索框输入123 self.setup.inputNumber() # 点击搜索 self.searchpanel.clickSearchInto() # 断言页面是否存在百度 self.base.assertTrue(SETUP_BAIDU) # ---wmw @allure.story('测试恢复默认设置') def test003SetUpPage(self, setUp_init): ''' 1、点击主页工具菜单 2、点击设置 3、点击广告屏蔽 4、获取未点击前,广告屏蔽,精选内容推送开关状态 5、点击精选内容推送 6、向下滑动到恢复默认设置 7、点击恢复默认设置 8、点击恢复 9、点击主页工具菜单 10、点击设置 11、获取点击后,广告屏蔽,精选内容推送开关状态 12、判断点击恢复默认设置前,广告屏蔽开关状态和恢复后广告屏蔽开关状态 ''' # 点击主页工具菜单 self.home.clickMore() # 点击设置 self.toolbarpanel.clickSetUp() # 点击广告屏蔽 self.setup.clickBlockAds(BLOCK_ADS_SWITCH) BeforeBlockAdsText = self.setup.obtainBlockAdsSwitch(BLOCK_ADS_SWITCH) sleep(4) # 点击精选内容推送 self.setup.clickSwipeLeftRight(SWIPE_LEFT_RIGHT_SWITCH) sleep(4) BeforeSwipeLeftRight = self.setup.obtainSwipeLeftRightSwitch( SWIPE_LEFT_RIGHT_SWITCH) # 向下滑动到恢复默认设置 self.base.scrollToElement(SETUP_RESET_TEXT) # 点击恢复默认设置 self.setup.clickResetToDefault() # 点击恢复 self.setup.clickReset() # 点击主页工具菜单 self.home.clickMore() # 点击设置 self.toolbarpanel.clickSetUp() AfterBlockAdsText = self.setup.obtainBlockAdsSwitch(BLOCK_ADS_SWITCH) AfterSwipeLeftRight = self.setup.obtainSwipeLeftRightSwitch( SWIPE_LEFT_RIGHT_SWITCH) # 判断点击恢复默认设置前,广告屏蔽开关状态和恢复后广告屏蔽开关状态 self.base.assertEqual(BeforeBlockAdsText, AfterBlockAdsText, False) self.base.assertEqual(BeforeSwipeLeftRight, AfterSwipeLeftRight, False) # ---wmw @allure.story('测试简版显示是否正常') def test004SetUpPage(self, setUp_init): # 点击主页工具菜单 self.home.clickMore() # 点击设置 self.toolbarpanel.clickSetUp() # 点击魅族头条设置 self.setup.clickMeizuHeadlinesSettings() # 点击简版显示 self.setup.clickSimple() # 点击mback self.pubmethod.clickBack() # 断言页面魅族头条是否存在 self.base.assertTrue(SETUP_MEIZU_HEADLINES) # 点击简版显示--更多 self.setup.clickSetUpMore() # 点击“倒三角”进入频道管理页面 self.news.clickNewsTriangle() # 点击“星座”频道打开,进入资讯流列表 self.news.clickNewsChannel(NEWS_CHANNEL_CONSTELLATION) # 提取资讯流页面第一个文章的文本信息 afterText = self.news.getNewsArticleTitle() # 点击工具栏资讯刷新页面 self.home.clickInformation() # 断言页面是否存刷新成功 self.base.assertTrue(afterText, False) sleep(5) # 打开资讯文章 self.news.clickOpenNewsArticle() beforeText = self.pubmethod.getBaiduApiText(NEWS_PAGE_MOREMENU) self.base.assertEqual(afterText, beforeText, True)
class TestNewsPage(): @pytest.fixture() def news_init(self, scope="function"): self.base = Base(self.driver) self.home = HomePage(self.driver) self.pubmethod = PubMethod(self.driver) self.more = MorePage(self.driver) self.news = NewsPage(self.driver) logging.info("") logging.info("****开始执行用例****") self.base.unlock() self.pubmethod.stopApp(BROWSER_PACKAGE_NAME) self.pubmethod.startApp(BROWSER_PACKAGE_NAME) self.pubmethod.mbackToHomeOrNegative() yield logging.info("****用例执行结束****") logging.info("") @allure.story('测试下拉刷新、上滑刷新、点击资讯按钮刷新、点击提示语刷新资讯流列表,更新资讯内容') def test001RefreshNews(self, news_init): ''' 1、打开浏览器,在首页点击“资讯”按钮进入资讯流列表 2、获取资讯流列表的文章标题 3、下拉刷新资讯流列表内容,再次获取资讯流列表的文章标题 4、断言刷新前和刷新后的文章标题不一样 5、滑动页面找到'上次看到这里,点击刷新'提示语,点击提示语,刷新资讯流内容 6、断言刷新前和刷新后的文章标题不一样 7、上滑刷新,刷新新的资讯文章 8、断言刷新前的文章内容标题不存在 ''' self.home.clickHome() self.home.clickHomeOnPage(HOME_PAGE) self.home.clickInformation() beforeArticleTitle = self.news.getNewsArticleTitle() self.news.dropScrollNews() sleep(2) afterArticleTitle = self.news.getNewsArticleTitle() self.base.assertEqual(beforeArticleTitle, afterArticleTitle, False) self.news.scrollUpNewsToElement() self.news.clickNewsRefreshNotice() sleep(2) afterRefreshArticleTitle = self.news.getNewsArticleTitle() self.base.assertEqual(afterArticleTitle, afterRefreshArticleTitle, False) self.news.scrollUpNews(2) afterToArticleTitle = self.news.getNewsArticleTitle() self.base.assertEqual(afterRefreshArticleTitle, afterToArticleTitle, False) @allure.story('测试美女频道,打开标签列表、打开图片详情') def test002NewsBeautyGrilChannel(self, news_init): ''' 1、打开浏览器,在首页向上滑动进入资讯流列表 2、点击资讯流列表的三角符号,进入频道管理页面 3、点击“美女”,进入“美女”频道列表 4、断言“美女图集”存在,则打开美女频道正常 5、再点击打开“女神”标签,进入标签列表页中 6、断言“女神”标签中“图集详情的内容ID”存在 7、点击mback返回美女列表页 8、滑动页面,选择美女图片打开进入美女图片详情 9、断言图片详情页顶部返回按钮存在 ''' self.home.clickInformation() self.news.clickNewsTriangle() self.news.clickNewsChannel(NEWS_CHANNEL_BEAUTY_GIRL) self.base.assertTrue(NEWS_BEAUTY_GIRL_ATLAS) self.news.clickBeautyGirlLable(NEWS_BEAUTY_GIRL_LABEL) self.base.assertTrue(NEWS_BEAUTY_GIRL_GODDESS) self.pubmethod.clickBack() self.news.scrollUpNews(1) self.news.clickBeautyGirlList() self.base.assertTrue(NEWS_BEAUTY_GIRL_BACK) @allure.story('测试频道管理页面,新增、删除、长按、点击打开频道跳转正常等操作') def test003NewsChannelManage(self, news_init): ''' 1、打开浏览器,上滑进入资讯流列表 2、点击倒三角符号,进入频道管理页面 3、在我的频道管理页面,长按“头条” 4、删除“视频、军事”频道 5、点击“完成”按钮 6、再添加“视频、军事”频道 7、点击“视频”频道,进入资讯流列表 8、断言视频频道列表中的负反馈按钮存在 ''' self.pubmethod.clearApp(BROWSER_PACKAGE_NAME) self.pubmethod.startApp(BROWSER_PACKAGE_NAME) self.pubmethod.clickPrivacyAgree() self.pubmethod.clickPermissionAgree() self.base.browserWatcher() sleep(4) self.home.clickInformation() self.news.clickNewsTriangle() self.news.longPressNewsChannel(NEWS_CHANNEL_TOUTIAO) self.news.clickDeleteNewsChannel(NEWS_CHANNEL_DELETE, 2) self.news.clickFinishButton() self.news.addNewsChannel(NEWS_CHANNEL_VIDEO) self.news.addNewsChannel(NEWS_CHANNEL_MILITARY) self.news.clickNewsChannel(NEWS_CHANNEL_VIDEO) self.base.assertTrue(NEWS_VIDEO_NO_INTERESTED) @allure.story('测试资讯流列表中的不感兴趣功能') def test004NewsChannelManage(self, news_init): """ 1、打开浏览器,上滑进入资讯流列表页面 2、获取资讯流列表第一个标题 3、点击“X”按钮,显示不感兴趣弹框 4、点击“不感兴趣”,删除文章 5、断言删除前和删除后的文章标题不相等 """ self.home.clickInformation() beforeArticleTitle = self.news.getNewsArticleTitle() self.news.clickDeleteNewsChannel(NEWS_ARTICLE_DELETE, 1) self.news.clickDeleteNewsChannel(NEWS_DISLIKE, 1) afterArticleTitle = self.news.getNewsArticleTitle() self.base.assertEqual(beforeArticleTitle, afterArticleTitle, False) @allure.story('测试下拉刷新资讯流列表,更新资讯内容,打开任意文章,文章加载正常') def test005RefreshNewsOpenArticle(self, news_init): ''' 1、打开浏览器,在首页点击“资讯”按钮进入资讯流列表 2、点击“倒三角”进入频道管理页面 3、点击“健康”频道打开,进入资讯流列表 4、下拉刷新资讯流列表内容 4、获取列表中的文章标题文字信息 5、点击打开资讯流列表的资讯文章详情 6、根据百度文字识别 API 识别并获取图片中文字 7、断言文章标题和文章详情页的文字的匹配度 ''' self.home.clickInformation() self.news.clickNewsTriangle() self.news.clickNewsChannel(NEWS_CHANNEL_HEALTH) self.news.clickOpenNewsArticle() self.pubmethod.clickBack() self.news.dropScrollNews() beforetitle = self.news.getNewsArticleTitle() self.news.clickOpenNewsArticle() aftertitle = self.pubmethod.getBaiduApiText(NEWS_PAGE_MOREMENU) self.base.assertEqual(beforetitle, aftertitle, True) # ---wmw @allure.story('测试资讯广告') def test006NewsAdvertisement(self, news_init): ''' 1、点击资讯按钮进入资讯流列表,并刷新资讯 2、上滑页面,点击X按钮,删除广告,并断言是否存在 ''' self.pubmethod.clearApp(BROWSER_PACKAGE_NAME) self.pubmethod.startApp(BROWSER_PACKAGE_NAME) self.pubmethod.clickPrivacyAgree() self.pubmethod.clickPermissionAgree() self.base.browserWatcher() sleep(4) # 点击资讯按钮进入资讯流列表 self.home.clickInformation() # 点击“倒三角”进入频道管理页面 self.news.clickNewsTriangle() # 点击“视频”频道打开,进入资讯流列表 self.news.clickNewsChannel(NEWS_CHANNEL_VIDEO) # 上滑页面 self.news.SlideUp() sleep(2) # 点击 X 按钮,删除广告 self.news.clickNewsAdvertisementDelete() # 点击不感兴趣 self.news.clickNewsAdvertisementUninterested() sleep(4) # 断言页面是否存在广告 self.base.assertTrue(NEWS_ADVERTISEMENT, False)