def login(self, xpath):
     common.delayed_get_element(self.driver, 5, ("xpath", xpath)).click()
     common.delayed_get_element(self.driver, 3, ("id", "dopool.player:id/phoneEdit")).send_keys(telephone)
     timeStamp = int(time.mktime(datetime.now().timetuple()))
     self.driver.find_element_by_id("dopool.player:id/smsCodeEdit").send_keys(self.encrypt_md5(timeStamp))
     while common.isElementExist("id", self.driver, "dopool.player:id/loginBtn"):
         self.driver.find_element_by_id("dopool.player:id/loginBtn").click()
Exemple #2
0
 def test_13_exit_play(self):
     """退出播放"""
     base(self.driver).sign_out()
     homepage(self.driver).stream_CCTV1()
     common.delayed_get_element(self.driver, 17, ("id", "dopool.player:id/backImage")).click()
     page_name = common.delayed_get_element(self.driver, 3, ("id", "dopool.player:id/common_page_title")).text
     self.assertEqual("央视", page_name, "从直播页面返回的上级页面应该是央视页")
Exemple #3
0
 def test_04_dailycheckin_after_checkin(self):
     """点击后:本期已连续签到1天,第一天:已领取,已签到按钮灰显;查看金币金额:累加5金币;签到显示已签到1天"""
     base.login(
         "//android.widget.ImageView[@resource-id='dopool.player:id/img_user_head']"
     )
     gold_coins_number = int(checkin_page.View_gold_coins_number())
     driver.find_element_by_xpath("//*[@text='签到']").click()
     common.delayed_get_element(
         driver, 3, ("id", "dopool.player:id/btn_sign")).click()  #点击立即签到
     checkin_days = common.delayed_get_element(
         driver, 3, ("id", "dopool.player:id/tv_sign_days")).text
     self.assertEqual("本期已连续签到1天", checkin_days,
                      "点击签到之后,每日签到页面应显示本期已连续签到1天")
     first_day_xpath = "//android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android." \
                       "widget.LinearLayout[1]/android.view.View[1]/android.widget.LinearLayout[1]/android.widget." \
                       "LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.TextView[1]"
     first_day = driver.find_element_by_xpath(first_day_xpath).text
     self.assertEqual("已领取", first_day, "点击签到之前,每日签到第一天应显示已领取")
     checkin_sign_xpath = "//android.widget.Button[@resource-id='dopool.player:id/btn_sign']"
     checkin_sign = driver.find_element_by_xpath(checkin_sign_xpath).text
     self.assertEqual("已签到", checkin_sign, "点击签到之前,签到按钮应显示立即签到")
     driver.find_element_by_xpath(
         "//android.widget.ImageView[@resource-id='dopool.player:id/img_close']"
     ).click()
     checkin_after_gold_coins_number = int(
         checkin_page.View_gold_coins_number())
     self.assertEqual(gold_coins_number + 5,
                      checkin_after_gold_coins_number, "第一天签到之后,金币数量应累加5个")
     chenkin_sign = driver.find_element_by_xpath(
         "//android.widget.TextView[@resource-id='dopool.player:id/signTv']"
     ).text
     self.assertEqual("已签到1天", chenkin_sign, "签到后签到按钮下应显示:已签到1天")
Exemple #4
0
 def test_07_Setting(self):
     """
     在我的页面,设置
     """
     common.swipeUp(self.driver)
     common.delayed_get_element(self.driver, 5, ("xpath", "//android.widget.TextView[@text='设置']")).click()
     setting_element = common.delayed_get_element(self.driver, 5, ("xpath", "//android.widget.TextView[@text='给手机电视加油']")).text
     self.assertEqual(setting_element, "给手机电视加油", "设置页面未刷新出来")
Exemple #5
0
 def test_02_switching_clarity(self):
      """
     在我的页面,查看观看历史
      """
      common.delayed_get_element(self.driver, 5, ("xpath", "//*[@text='查看更多']")).click()
      common.delayed_get_element(self.driver, 5, ("id", "dopool.player:id/imageView")).click()
      base(self.driver).click_play_float_button("backImage", [(53, 91)])
      self.assertTrue(common.delayed_get_element(self.driver, 5, ("id", "dopool.player:id/imageView")), "观看历史中无已播放过的视频")
Exemple #6
0
 def switch_home_tabs(self, tab):
     """在首页推荐页面,点击顶部tabs列表按钮,在列表中点击要切换的tab,等待页面刷新完成后,点击顶部tabs列表按钮,循环以上操作"""
     base(self.driver).switch_home_tab(tab)
     common.delayed_get_element(self.driver, 60,
                                ("id", "dopool.player:id/image"))
     page_elements = self.driver.find_elements_by_class_name(
         "android.widget.ImageView")
     self.assertTrue(len(page_elements) > 1, f"首页-{tab}页面的元素未刷新出来")
Exemple #7
0
 def test_04_my_appointment(self):
     """
     在我的页面,查看我的预约
     """
     common.delayed_get_element(self.driver, 5, ("xpath", "//android.widget.TextView[@text='我的预约']")).click()
     common.delayed_get_element(self.driver, 5, ("id", "dopool.player:id/tv_epg_name")).click()
     base(self.driver).click_play_float_button("backImage", [(53, 91)])
     switch_stream_element = common.delayed_get_element(self.driver, 10,("id", "dopool.player:id/tv_switch_channel")).text
     self.assertEqual(switch_stream_element, "切换频道 >", "预约页面未刷新出来")
Exemple #8
0
 def test_12_watch_history(self):
     """直播的观看历史"""
     homepage(self.driver).clear_watch_history("直播")
     live_title = "CCTV1"
     homepage(self.driver).stream_CCTV1(live_title)
     common.delayed_get_element(self.driver, 3, ("id", "dopool.player:id/backImage")).click()
     common.delayed_get_element(self.driver, 3, ("id", "dopool.player:id/common_page_finish")).click()
     base(self.driver).bottom_navigation("我的")
     self.assertTrue(common.isElementExist("xpath", self.driver, f"//*[@text='{live_title}']"), f"观看历史中应显示{live_title}")
Exemple #9
0
 def test_06_common_problem(self):
     """
    在我的页面,常见问题
    """
     common.swipeUp(self.driver)
     common.delayed_get_element(self.driver, 5, ("xpath", "//android.widget.TextView[@text='意见反馈']")).click()
     common.delayed_get_element(self.driver, 5, ("xpath", "//android.widget.TextView[@text='常见问题']")).click()
     normal_question_element = common.delayed_get_element(self.driver, 5, ("xpath", "//android.widget.TextView[@text='我在使用手机电视软件,会收取其他费用吗?']")).text
     self.assertEqual(normal_question_element, "我在使用手机电视软件,会收取其他费用吗?", "常见问题页面未刷新出来")
Exemple #10
0
def list_message(self, driver, message):
    # 已经发送的消息
    try:
        common.delayed_get_element(driver, 5,
                                   ("xpath", f"//*[@text='{message}']"))
        return True
    except:
        logger.error('未定位到元素:' + '%s' % ())
        self.screenshot()
        return False
Exemple #11
0
 def switch_stream_tabs(self, tab):
     """在直播页面,点击顶部tabs列表按钮,在列表中点击要切换的tab,等待页面刷新完成后,点击顶部tabs列表按钮,循环以上操作"""
     if tab == "CIBN": time.sleep(2)  #CIBN页签不加延时过不去
     if tab == "国际": common.swipeLeft(self.driver)
     common.delayed_get_element(self.driver, 3,
                                ("xpath", f"//*[@text='{tab}']")).click()
     common.delayed_get_element(self.driver, 60,
                                ("id", "dopool.player:id/image"))
     page_elements = self.driver.find_elements_by_class_name(
         "android.widget.ImageView")
     self.assertTrue(len(page_elements) > 1, f"直播-{tab}页面的元素未刷新出来")
Exemple #12
0
 def test_04_change_station_vertical_screen(self):
     """竖屏换台"""
     homepage(self.driver).stream_CCTV1()
     common.delayed_get_element(self.driver, 15, ("xpath", "//*[@text='换台']")).click()
     self.driver.find_element_by_xpath("//*[@text='CIBN']").click()
     self.driver.find_element_by_xpath("//*[@resource-id='dopool.player:id/recyclerView']/android.view.View[1]").click()
     start_time = common.delayed_get_element(self.driver, 15, ("id", "dopool.player:id/portrait_current_duration")).text
     self.assertEqual("分", start_time[-1:], "启播时间显示**时**分即播放正常")
     self.driver.find_element_by_id("dopool.player:id/backImage").click()  # 返回
     self.driver.find_element_by_id("dopool.player:id/common_page_finish").click()  # 返回首页
     base(self.driver).bottom_navigation("首页")
 def bottom_navigation(self, button_name):
     xpath_mine = "//android.widget.LinearLayout[@resource-id='dopool.player:id/bottomNavigationView']/android." \
                  "widget.FrameLayout[5]/android.widget.FrameLayout[1]/android.widget.ImageView[1]"
     # button_index = {}
     if common.isElementExist("xpath", self.driver, xpath_mine):
         button_index = {"首页": 1,"直播": 2,"热点": 3,"会员": 4,"我的": 5}
     else:
         button_index = {"首页": 1, "直播": 2, "会员": 3, "我的": 4}
     xpath = f"//android.widget.LinearLayout[@resource-id='dopool.player:id/bottomNavigationView']/android.widget." \
         f"FrameLayout[{button_index[button_name]}]/android.widget.FrameLayout[1]/android.widget.ImageView[1]"
     common.delayed_get_element(self.driver, 10, ("xpath", xpath)).click()
Exemple #14
0
 def test_03_full_screen(self):
     """播放视频,全屏"""
     homepage(self.driver).stream_CCTV1()
     self.driver.find_element_by_id("dopool.player:id/iv_full_screen").click()
     common.delayed_get_element(self.driver, 10, ("id", "dopool.player:id/iv_full_screen"))
     # 点击屏幕中心
     time_text = self.driver.find_element_by_id("dopool.player:id/tv_time").text
     self.assertEqual("分", time_text[-1:], "启播时间显示**时**分即正常播放")
     self.driver.find_element_by_id("dopool.player:id/backImage").click()    #退出全屏
     self.driver.find_element_by_id("dopool.player:id/backImage").click()    #退出播放
     self.driver.find_element_by_id("dopool.player:id/common_page_finish").click()  # 返回首页
     base(self.driver).bottom_navigation("首页")
Exemple #15
0
 def test_09_watch_history(self):
     """点播的观看历史"""
     homepage(self.driver).clear_watch_history("点播")
     homepage(self.driver).play_video(video_title)
     common.delayed_get_element(
         self.driver, 3, ("id", "dopool.player:id/backImage")).click()
     common.delayed_get_element(
         self.driver, 3, ("id", "dopool.player:id/cancel_text")).click()
     base(self.driver).bottom_navigation("我的")
     self.assertTrue(
         common.isElementExist("xpath", self.driver,
                               f"//*[@text='{video_title}']"),
         f"观看历史中应显示{video_title}")
Exemple #16
0
 def test_02_upgrade(self):
     """点击立即升级,等待更新完毕,等待安装完毕,打开,进入首页"""
     base(self.driver).slide_guide_page()
     base(self.driver).enter_app()
     base(self.driver).close_privacy()
     common.delayed_get_element(
         self.driver, 6, ("id", "dopool.player:id/tv_update_now")).click()
     base(self.driver).permission_prompt()
     base(self.driver).enter_app()
     base(self.driver).close_privacy()
     base(self.driver).close_float()
     home_text = self.driver.find_element_by_id(
         "dopool.player:id/tabText").text
     self.assertEqual("首页", home_text, "打开app后,默认定位在首页")
Exemple #17
0
    def test_10_exit_play(self):
        """退出播放"""
        base(self.driver).sign_out()
        homepage(self.driver).play_video(video_title)
        common.delayed_get_element(
            self.driver, 17, ("id", "dopool.player:id/backImage")).click()
        common.delayed_get_element(
            self.driver, 3, ("id", "dopool.player:id/btn_left")).click()
        time.sleep(1)
        self.assertTrue(
            common.isElementExist("xpath", self.driver, "//*[@text='点播']"),
            "退出点播后应显示搜索页面")


# if __name__ == "__main__":
#     Video().test_04_switching_clarity()
Exemple #18
0
 def switch_home_icon(self, index, icon):
     # def test_switch_home_icon(self, icon = "CRI"):
     """在首页推荐页面,切换的icon图标组的按钮,等待页面刷新完成"""
     icon_xpath = f"//android.support.v7.widget.RecyclerView[@resource-id='dopool.player:id/common_rcy']/android." \
         f"widget.LinearLayout[1]/android.support.v7.widget.RecyclerView[1]/android.widget.LinearLayout[{index+1}]"
     # 等待推荐页面的icon按钮刷新出来
     common.delayed_get_element(self.driver, 60,
                                ("xpath", icon_xpath)).click()
     common.delayed_get_element(self.driver, 60,
                                ("id", "dopool.player:id/title_head"))
     # android.widget.FrameLayout:页面中模块的类名,页面一般会有多个这样的模块
     page_elements = self.driver.find_elements_by_class_name(
         "android.widget.ImageView")
     self.driver.find_element_by_id(
         "dopool.player:id/common_page_finish").click()
     self.assertTrue(len(page_elements) > 1, f"首页-推荐页面的icon组-{icon}页面未刷新出来")
Exemple #19
0
def unlogin_set(self, driver):
    # 未登录首次进入意见反馈页面
    unlogin_xpath = "//*[@text='填写意见反馈需要您先登录并且绑定手机号哦~'']"
    unlogin_toast_element = common.delayed_get_element(
        driver, 5, ("xpath", unlogin_xpath))
    self.assertEqual("填写意见反馈需要您先登录并且绑定手机号哦~",
                     unlogin_toast_element.text,
                     msg="未进入已经反馈页面")
Exemple #20
0
 def test_02_try_watch(self):
     """
     点击会员视频,试看
     """
     base(self.driver).watch_vip_video()
     video_element = common.delayed_get_element(
         self.driver, 5,
         ("id", "dopool.player:id/tv_hd_buy_memberships")).text
     self.assertEqual(video_element, "购买VIP会员", "购买VIP会员按钮未出现,VIP视频试看异常。")
 def play_collect_appoint_stream(self):
     # 播放直播节目
     self.bottom_navigation("直播")
     common.delayed_get_element(self.driver,
                                5,
                                ("xpath", "//*[@resource-id='dopool.player:id/common_rcy']/android.widget.LinearLayout[2]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]/android.widget.ImageView[1]")).click()
     common.delayed_get_element(self.driver, 5, ("id", "dopool.player:id/iv_collection")).click()
     common.delayed_get_element(self.driver,
                                5,
                                ("xpath","//*[@resource-id='dopool.player:id/epgListRV']/android.view.ViewGroup[4]/android.widget.TextView[3]")).click()
     common.delayed_get_element(self.driver, 5, ("id", "dopool.player:id/backImage")).click()
Exemple #22
0
 def test_08_collection(self):
     """收藏点播视频"""
     homepage(self.driver).play_video(video_title)
     common.delayed_get_element(
         self.driver, 3,
         ("id", "dopool.player:id/collection_text")).click()
     common.delayed_get_element(
         self.driver, 3, ("id", "dopool.player:id/backImage")).click()
     common.delayed_get_element(
         self.driver, 3, ("id", "dopool.player:id/cancel_text")).click()
     base(self.driver).bottom_navigation("我的")
     common.delayed_get_element(self.driver, 3,
                                ("xpath", "//*[@text='我的收藏']")).click()
     common.delayed_get_element(self.driver, 3,
                                ("xpath", "//*[@text='点播']")).click()
     self.assertEqual(
         video_title,
         self.driver.find_element_by_id("dopool.player:id/tvTitle").text,
         f"我的收藏点播列表应该是{video_title}")
Exemple #23
0
 def test_03_my_collection(self):
     """
      在我的页面,查看我的收藏
      """
     common.delayed_get_element(self.driver, 5, ("xpath", "//android.widget.TextView[@resource-id='dopool.player:id/text'and@text='我的收藏']")).click()
     common.delayed_get_element(self.driver, 5, ("id", "dopool.player:id/imageView")).click()
     common.delayed_get_element(self.driver, 5, ("id", "dopool.player:id/backImage")).click()
     collection_element = common.delayed_get_element(self.driver, 10,("xpath", "//android.widget.TextView[@text='直播']")).text
     self.assertEqual(collection_element, "直播", "未正常返回我的收藏页面")
Exemple #24
0
 def clear_watch_history(self, page):
     base(self.driver).bottom_navigation("我的")
     common.delayed_get_element(self.driver, 3,
                                ("xpath", "//*[@text='查看更多']")).click()
     common.delayed_get_element(self.driver, 3,
                                ("xpath", f"//*[@text='{page}']")).click()
     self.driver.find_element_by_id(
         "dopool.player:id/managerTextView").click()
     common.delayed_get_element(self.driver, 3,
                                ("xpath", "//*[@text='全选']")).click()
     common.delayed_get_element(self.driver, 3,
                                ("xpath", "//*[@text='删除']")).click()
     self.driver.find_element_by_id("dopool.player:id/backImage").click()
Exemple #25
0
 def test_03_recommend(self):
     """猜你喜欢"""
     homepage(self.driver).play_video(video_title)
     #猜你喜欢第一个标题的xpath
     title_xpath = "//android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android." \
                   "widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.view." \
                   "ViewGroup[1]/android.support.v4.view.ViewPager[1]/android.support.v7.widget.RecyclerView[1]/android." \
                   "view.ViewGroup[4]/android.widget.TextView[1]"
     recommend_title = common.delayed_get_element(
         self.driver, 10, ("xpath", title_xpath)).text
     # 猜你喜欢第一个视频图片的xpath
     xpath = "//android.support.v7.widget.RecyclerView[@resource-id='dopool.player:id/recyclerView']/android.view." \
             "ViewGroup[4]/android.widget.ImageView[1]"
     self.driver.find_element_by_xpath(xpath).click()
     common.click_screen_point(self.driver, 1 / 2, 1 / 8, 20)
     real_title = common.delayed_get_element(
         self.driver, 10,
         ("xpath", "//*[@resource-id='dopool.player:id/tv_title']")).text
     self.assertTrue(recommend_title in real_title,
                     f"猜你喜欢列表播放的视频应该是{recommend_title}")
Exemple #26
0
 def test_05_my_appointment(self):
     """
     在我的页面,意见反馈
     """
     common.swipeUp(self.driver)
     common.delayed_get_element(self.driver, 5, ("xpath", "//android.widget.TextView[@text='意见反馈']")).click()
     common.delayed_get_element(self.driver, 5, ("id", "dopool.player:id/sug_edt_content")).send_keys("你好,还不错。")
     common.delayed_get_element(self.driver, 5, ("id", "dopool.player:id/sug_tv_send")).click()
     appointment_element = common.delayed_get_element(self.driver, 5, ("id", "dopool.player:id/item_tv_user")).text
     self.assertEqual(appointment_element, "你好,还不错。", "意见反馈留言失败~")
Exemple #27
0
 def play_video(self, video_title, is_full_screen=False):
     time.sleep(7)
     if not self.driver.find_element_by_id(
             "dopool.player:id/tabText").text == "首页":
         base(self.driver).bottom_navigation("首页")
     common.delayed_get_element(self.driver, 10,
                                ("id", "dopool.player:id/tv_tip")).click()
     common.delayed_get_element(
         self.driver, 10,
         ("id", "dopool.player:id/search_edit")).send_keys(video_title)
     video_title_xpath = "//android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout" \
                         "[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.view.ViewGroup[1]/android." \
                         "widget.FrameLayout[2]/android.widget.FrameLayout[1]/android.support.v7.widget.RecyclerView[1]/android." \
                         "widget.TextView[1]"
     common.delayed_get_element(self.driver, 3,
                                ("xpath", video_title_xpath)).click()
     common.delayed_get_element(
         self.driver, 3, ("id", "dopool.player:id/tv_watch")).click()
     if is_full_screen:
         common.delayed_get_element(
             self.driver, 10,
             ("id", "dopool.player:id/iv_full_screen")).click()
Exemple #28
0
 def test_05_change_station_horizontal_screen(self):
     """横屏换台"""
     homepage(self.driver).stream_CCTV1()
     common.delayed_get_element(self.driver, 5, ("xpath", "//*[@text='换台']")).click()
     common.delayed_get_element(self.driver, 3, ("xpath", "//*[@text='央视']")).click()
     common.delayed_get_element(self.driver, 3, ("xpath", "//*[@text='CCTV3']")).click()
     time.sleep(7)
     start_time = self.driver.find_element_by_id("dopool.player:id/portrait_current_duration").text
     self.assertEqual("分", start_time[-1:], "启播时间显示**时**分即播放正常")
Exemple #29
0
 def test_03_buy_pay_vip(self):
     """
     购买VIP会员 - 支付
     """
     base(self.driver).watch_vip_video()
     common.delayed_get_element(
         self.driver, 5,
         ("id", "dopool.player:id/tv_hd_buy_memberships")).click()
     common.delayed_get_element(self.driver, 5,
                                ("id", "dopool.player:id/btn_pay")).click()
     common.delayed_get_element(
         self.driver, 5, ("id", "dopool.player:id/backImage")).click()
     open_vip_element = common.delayed_get_element(
         self.driver, 5, ("id", "dopool.player:id/tv_vip_protocal")).text
     self.assertEqual(open_vip_element, "《会员服务协议》", "未正常返回到开通VIP页面")
Exemple #30
0
 def test_11_one_click_live(self):
     """一键直播"""
     #1.查看直播中的节目名称 2.回看 3.一键直播 4.查看是否在播放直播中的节目
     homepage(self.driver).stream_CCTV1()
     living_title = common.delayed_get_element(self.driver, 3, ("id", "dopool.player:id/live_title")).text
     common.swipeDown(self.driver, 1/2)
     self.driver.find_element_by_xpath("//*[@resource-id='dopool.player:id/epgListRV']/android.view.ViewGroup[1]/android.widget.TextView[3]").click()
     common.delayed_get_element(self.driver, 10, ("id", "dopool.player:id/iv_full_screen"))
     base(self.driver).click_play_float_button("civ_to_live", [(87, 388)])
     common.delayed_get_element(self.driver, 10, ("id", "dopool.player:id/iv_full_screen"))
     actual_living_title = common.delayed_get_element(self.driver, 3, ("id", "dopool.player:id/live_title")).text
     self.assertEqual(living_title, actual_living_title, f"一键直播播放的节目应该是{living_title}")