def isVip(self): print("是否为大咖vip") #切换到【我的】 self.driver.find_element_by_name('我的').click() # 判断是否登录 isLogin = isElement.find_Element(self, 'id', 'tv_my_fragment_login_no_login') if isLogin: # 登录账号 self.driver.find_element_by_id('tv_my_fragment_login_no_login').click() sleep(5) login.login_userName(self) flag = self.driver.find_element_by_xpath( '//android.view.View[@content-desc="绑定 绑定"]').is_enabled() if flag: back.ivBack(self) else: print("有登录") # 判断是否为vip text = self.driver.find_element_by_id('tv_my_fragment_vip_wiki_date').text print("大咖vip", text) if text == '已失效': return '已失效' elif text == "未开通": return '未开通' else: return 'vip'
def login_download(self): # 判断是否登录 isLogin = isLogins.isLogin(self) # 返回 back.ivBack(self) if isLogin: print("已登录") else: print("未登录,登录账号") self.driver.find_element_by_id("tv_my_fragment_login_no_login").click() sleep(5) Logins.login_userName(self) # 切换到我的 self.driver.find_element_by_name('我的').click() sleep(3) # 选择【下载】 self.driver.find_element_by_name('下载').click() sleep(3) list = self.driver.find_elements_by_id( 'com.mbalib.android.wiki:id/recycler')[0].find_elements_by_class_name( 'android.widget.LinearLayout') if len(list) == 0: print("已下载列表无数据") else: list[0].click() sleep(5)
def test_home_slideshow(self): print('banner图') # 判断是否有闪屏广告 sleep(5) #点击banner self.driver.find_element_by_id('bannerContainer').click() # 返回 back.ivBack(self)
def test_home_banner(self): print('首页横幅广告') #判断是否有首页横幅广告 hengfu = isElement.find_Element(self, 'id', 'iv_home_wiki') if hengfu: print('存在横幅广告') self.driver.find_element_by_id('iv_home_wiki').click() back.ivBack(self) else: print('不存在横幅广告')
def test_ketang_ad(self): print("课堂首页广告") #判断是否有弹窗广告 llparent = isElement.find_Element(self, 'id', 'llparent') if llparent: print("课堂首页有广告") self.driver.find_element_by_id('llparent').click() sleep(5) back.ivBack(self) else: print("课堂首页无广告") sleep(5)
def test_ad(self): #判断是否有更新弹窗 splash = isElement.find_Element(self, 'id', 'splash_iv_image') if splash: print('点击闪屏广告') self.driver.find_element_by_id('splash_iv_image').click() sleep(5) #返回 back.ivBack(self) #执行操作:判断是否有闪屏广告 Ad.test_is_ad(self) else: print('test_ad无闪屏广告')
def test_is_ad(self): driver = self.driver llparent = isElement.find_Element(self, 'id', 'image') sleep(5) print('判断是否有首页广告', llparent) if llparent: # 判断是否有首页广告 print('有首页广告') driver.find_element_by_id('image').click() sleep(5) #返回 back.ivBack(self) else: print("无首页广告") sleep(5)
def test_afamous_ad(self): print("有句名言广告") self.driver.find_element_by_name('有句名言').click() sleep(5) # 判断是否有广告位 # 先判断每日一词是否是有图 clImage = isElement.find_Element(self, 'id', 'ivAdImage') if clImage: print("有句名言有广告") self.driver.find_element_by_id('ivAdImage').click() sleep(5) back.ivBack(self) else: print("有句名言无广告")
def test_vipAduioPlay(self): # 判断是否有闪屏广告 AdTest.Ad.test_ad(self) # 判断是否有首页广告 AdTest.Ad.test_is_ad(self) sleep(5) print("点击首页的【今日推荐】的音频进入大咖播放页") #用户是否为VIP用户 isVip = IsVip.isVip(self) back.ivBack(self) sleep(5) # 点击的是否为试听音频 aduio = self.driver.find_elements_by_id( "com.mbalib.android.wiki:id/wikiAudioRecycler" )[0].find_elements_by_class_name("android.widget.RelativeLayout") print("audio", aduio) try: aduioIsVip = aduio[0].find_element_by_id('imageVip').is_displayed() except: aduioIsVip = False if isVip: print("点击音频进入大咖播放页") aduio[0].find_element_by_id('tv_title').click() sleep(5) else: #用户不是VIP用户则需判断音频是否为试听音频 if aduioIsVip: print("该音频是非试听音频") aduio[0].find_element_by_id('tv_title').click() sleep(5) #触发分享弹窗或者开通VIP弹窗 tvOpen = isElement.find_Element(self, 'id', 'tvOpen') #点击【开通vip】 if tvOpen: print("有触发弹窗") self.driver.find_element_by_id('tvOpen').click() sleep(5) #进入开通vip页面,判断是否进入的是开通vip页面 tvPay = isElement.find_Element(self, 'id', 'tvPay') if tvPay: print("进入开通vip页面") else: print("未进入开通vip页面") else: print("无触发弹窗") else: print("该音频是试听音频") aduio[0].find_element_by_id('tv_title').click() sleep(5)
def test_dailyword_ad(self): print("每日一词广告") self.driver.find_element_by_name('每日一词').click() sleep(5) # 判断是否有广告位 # 先判断每日一词是否是有图 clImage = isElement.find_Element(self, 'id', 'ivAdImage') print("每日一词有广告", clImage) if clImage: print("每日一词有广告") self.driver.find_element_by_id('ivAdImage').click() sleep(5) back.ivBack(self) else: print("每日一词无广告")
def test_is_ad(self): driver = self.driver llparent = isElement.find_Element(self, 'id', 'image') sleep(5) print('判断是否有首页广告', llparent) if llparent: # 判断是否有首页广告 print('有首页广告') driver.find_element_by_id('image').click() sleep(5) isWeixin = isElement.find_Element(self, 'id', 'tv_popu_course_bind_wx_bind') if isWeixin: self.driver.find_element_by_id( 'tv_popu_course_bind_wx_cancel').click() #返回 back.ivBack(self) else: print("无首页广告") sleep(5)
def test_wiki_audio_vip(self): print("大咖开通页背景广告位") screen = swipe.get_size(self) self.driver.swipe(screen[0] * 0.5, screen[1] * 0.75, screen[0] * 0.5, screen[1] * 0.25, 6000) #进入大咖首页 print("点击首页的大咖讲百科进入大咖首页") self.driver.find_elements_by_id( "com.mbalib.android.wiki:id/ivSection")[0].click() #点击开通,进入开通页 self.driver.find_element_by_id('ll_header').click() sleep(5) vipAd = isElement.find_Element(self, 'id', 'ivVipBanner') if vipAd: print("存在大咖开通页背景广告位") self.driver.find_element_by_id('ivVipBanner').click() sleep(5) back.ivBack(self) else: print("不存在大咖开通页背景广告位")
def test_wiki_audio_vip(self): print("大咖开通页背景广告位") # 判断是否有闪屏广告 Ad.test_ad(self) # 判断是否有首页广告 Ad.test_is_ad(self) #进入大咖首页 print("点击首页的大咖讲百科进入大咖首页") self.driver.find_elements_by_id( "com.mbalib.android.wiki:id/ivSection")[0].click() #点击开通,进入开通页 self.driver.find_element_by_id('ll_header').click() sleep(5) vipAd = isElement.find_Element(self, 'id', 'ivVipBanner') if vipAd: print("存在大咖开通页背景广告位") self.driver.find_element_by_id('ivVipBanner').click() sleep(5) back.ivBack(self) else: print("不存在大咖开通页背景广告位")
def vip_free_course(self): # 判断用户是否为vip vipText = vip.isKeVip(self) ll_taps = self.driver.find_elements_by_id('ll_tap') ll_taps[3].click() # 判断是否有课堂广告 ad.test_ketang_ad(self) flag = isElement.find_Element(self, "id", 'com.mbalib.android.wiki:id/recycler_list') while not flag: screen = swipe.get_size(self) self.driver.swipe(screen[0] * 0.5, screen[1] * 0.75, screen[0] * 0.5, screen[1] * 0.25, 6000) flag = isElement.find_Element( self, "id", 'com.mbalib.android.wiki:id/recycler_list') #点击全部课程的第一个课程 list = self.driver.find_elements_by_id( "com.mbalib.android.wiki:id/recycler_list" )[0].find_elements_by_class_name("android.widget.LinearLayout") self.driver.find_element_by_id('ivFold').click() flowLayout = list[0].find_elements_by_id('textview') siz = len(flowLayout) index = 0 flowText = flowLayout[index].text while flowText != 'VIP免费听': index = index + 1 if index < siz: flowText = flowLayout[index].text else: print("未有vip免费听") return self.driver.find_element_by_id('ivFold').click() self.driver.find_elements_by_id( "com.mbalib.android.wiki:id/recycler_list" )[0].find_elements_by_class_name("android.widget.LinearLayout")[0].click() sleep(5) vipListen = isElement.find_Element(self, 'id', 'll_ke_vip_listen') if vipListen: print("该课程未报名") #判断用户是否为vip if vipText == 'vip': payBottom = self.driver.find_elements_by_id('ll_bottom_pay') if len(payBottom) == 1: print("用户是vip用户") self.driver.find_element_by_id('ll_ke_vip_listen').click() sleep(5) flag = isElement.find_Element(self, 'id', 'll_ke_vip_listen') if not flag: print("vip免费听激活课程成功") else: print("vip免费听激活课程失败") return #我的课程中显示出该课程,有【vip免费听】标签 title = self.driver.find_element_by_id('tv_ke_title').text back.ivBack(self) isbuyKe = buyKe.is_buy_ke(self, title) if isbuyKe: print("vip免费听有加入我的课程列表") list1 = self.driver.find_elements_by_id( 'com.mbalib.android.wiki:id/layout_recycler' )[0].find_elements_by_class_name( 'android.widget.RelativeLayout') tv_titles = self.driver.find_elements_by_id( 'com.mbalib.android.wiki:id/layout_recycler' )[0].find_elements_by_id( 'com.mbalib.android.wiki:id/tv_title') for index in range(len(tv_titles)): if title == tv_titles[index].text: print("title:", tv_titles[index].text) #判断是否有vip免费听按钮 vipLogo = isElement.find_Element( self, 'id', 'iv_item_my_course_vip') if vipLogo: print("有显示【vip免费听】标签") else: print("未显示【vip免费听】标签") else: print("vip免费听未加入我的课程列表") else: print("用户不是vip用户") self.driver.find_element_by_id('ll_ke_vip_listen').click() sleep(5) tvTitle = self.driver.find_element_by_id('tvTitle').click() if tvTitle == '课堂VIP ': print("点击vip免费听,跳转到课堂vip开通页") return else: print("用户不是vip用户") else: buy = isElement.find_Element(self, 'id', 'tv_buy') if buy: print("该课程未报名且该课程不是vip免费听课程") else: print("该课程已报名")
def test_buyKe(self): """进入课程详情页,判断用户是否报名,未报名则报名""" # 判断是否登录 isLogin = IsLogin.isLogin(self) if not isLogin: self.driver.find_element_by_id('tv_my_fragment_login_no_login').click() sleep(5) login.login_userName(self) #判断是否绑定手机 bind = self.driver.find_element_by_xpath( "//android.view.View[@content-desc='绑定 绑定']").is_enabled() print("bind:", bind) if bind: back.ivBack(self) # 当前账号的M币金额 money = mbi.Mbi(self) #返回到【我的】页面 back.ivBack(self) sleep(5) #切换到课堂 self.driver.find_elements_by_id('tv_tab_title')[3].click() #判断是否有课堂广告 ad.test_ketang_ad(self) sleep(5) screen = swipe.get_size(self) self.driver.swipe(screen[0] * 0.5, screen[1] * 0.75, screen[0] * 0.5, screen[1] * 0.25, 6000) list = self.driver.find_elements_by_id( "com.mbalib.android.wiki:id/recycler_package" )[0].find_elements_by_class_name("android.widget.LinearLayout") list[0].click() sleep(5) #判断是否进入的是微信绑定页,如果是点击【取消】 flag = isElement.find_Element(self, 'id', 'tv_popu_course_bind_wx_bind') if flag: self.driver.find_element_by_id('tv_popu_course_bind_wx_cancel').click() sleep(5) print("进入课程详情页,是否有报名按钮") keTitle = self.driver.find_element_by_id('tv_ke_title').text print("keTitle:", keTitle) tvBuy = isElement.find_Element(self, 'id', 'tv_buy') if tvBuy: print("存在报名按钮") self.driver.find_element_by_id("tv_buy").click() sleep(5) #使用M币支付报名 flag = payType.m_pay_cancle(self, money) if not flag: return else: back.ivBack(self) #判断是否有补充弹窗,有则提交数据 contet = isElement.find_Element(self, 'id', 'layoutContent') if contet: print("信息补充弹窗开启") #填写信息点击【保存】 sInfo.filled(self) sleep(5) back.ivBack(self) isBuyKe.is_buy_ke(self, keTitle) else: print("不存在报名按钮") back.ivBack(self) isBuyKe.is_buy_ke(self, keTitle)
def test_search_ad(self): print('搜索首页广告') # 判断是否有闪屏广告 Ad.test_ad(self) # 判断是否有首页广告 Ad.test_is_ad(self) self.driver.find_element_by_id('toolbar_iv_search').click() sleep(5) #收起键盘 self.driver.hide_keyboard() #点击首个广告:目前是大咖广告 self.driver.find_elements_by_id( "com.mbalib.android.wiki:id/image")[0].click() back.ivBack(self) #点击每日一词,有句名言,智库早报 print('进入每日一词') self.driver.find_elements_by_id( 'com.mbalib.android.wiki:id/ivImge')[0].click() back.ivBack(self) print('进入有句名言') self.driver.find_elements_by_id( 'com.mbalib.android.wiki:id/ivImge')[1].click() back.ivBack(self) print('进入智库早报') self.driver.find_elements_by_id( 'com.mbalib.android.wiki:id/ivImge')[2].click() back.ivBack(self) print("进入搜索广告位") self.driver.find_elements_by_id( "com.mbalib.android.wiki:id/image")[1].click() back.ivBack(self) #切换到课堂 print("切换到课堂搜索页") self.driver.find_element_by_name('课堂').click() #判断是否有广告 print("判断课堂搜索页是否有广告") IvImageAd = isElement.find_Element(self, 'id', 'IvImageAd') if IvImageAd: print("存在课堂搜索页广告") self.driver.find_element_by_id('IvImageAd').click() sleep(5) back.ivBack(self) else: print("不存在课堂搜索页广告") #切换到资讯搜索页 print("切换到资讯搜索页") self.driver.find_element_by_name('资讯').click() IvImageAd = isElement.find_Element(self, 'id', 'IvImageAd') if IvImageAd: print("存在资讯搜索页广告") self.driver.find_element_by_id('IvImageAd').click() sleep(5) back.ivBack(self) else: print("不存在资讯搜索页广告") sleep(5)