Пример #1
0
class TestEditCreate(TestCase):
    """edit创建视频的测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    # sc.driver.getPageSource()

    def test_create_draft(self):
        """创建一个草稿视频."""
        sc.logger.info('创建一个草稿视频')
        fun_name = 'test_create_craft'

        sc.logger.info('点击创作中心主按钮')
        ba.home_enter()

        sc.logger.info('点击“视频剪辑”按钮')
        try:
            WebDriverWait(sc.driver, 5,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_home_edit)).click()
        except TimeoutException:
            WebDriverWait(sc.driver, 5,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.home_edit)).click()

        sc.logger.info('添加视频')
        ba.gallery_clip_add('视频', 3)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('切换到图片')
        sc.driver.find_element_by_name("视频").click()
        sc.driver.find_element_by_name("图片").click()

        sc.logger.info('添加图片')
        ba.gallery_clip_add('图片', 3)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击下一步')
        ba.find_element_click('predicate', 10, iOS_elements.el_gallery_next)

        sc.logger.info('点击“存草稿”按钮')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name("存草稿")).click()
        sc.logger.info('创建一个草稿视频完成')
Пример #2
0
class TestEditClip(TestCase):
    """镜头编辑相关操作的测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_clip_edit_function(self):
        """剪辑-镜头编辑-功能遍历."""
        sc.logger.info('剪辑-镜头编辑-功能遍历')
        fun_name = 'test_clip_edit_function'

        sc.logger.info('点击创作中心主按钮')
        ba.home_enter()

        sc.logger.info('点击草稿封面')
        ba.open_draft(iOS_elements.el_home_draft)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('功能遍历')
        ba.clip_fun_loop()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“存草稿”按钮')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name("存草稿")).click()

        sc.logger.info('剪辑-镜头编辑-功能遍历完成')
Пример #3
0
class TestCameraCancel(TestCase):
    """camera取消操作相关的测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_cancel_01_shot(self):
        """拍摄-拍摄页放弃."""
        sc.logger.info('拍摄-拍摄页放弃')
        fun_name = 'test_cancel_shot'

        sc.logger.info('点击创作中心主按钮')
        ba.home_enter()

        sc.logger.info('点击“美颜趣拍”')
        WebDriverWait(
            sc.driver,
            5).until(lambda x: x.find_element_by_name('美颜趣拍')).click()

        sc.logger.info('切换拍摄模式:自拍美颜->高清相机')
        el_normal = "高清相机"
        ba.find_element_click('name', 5, el_normal)
        sc.capture_screen(fun_name, self.img_path)

        # 点拍
        sc.logger.info('开始录制')
        el_capture = WebDriverWait(sc.driver, 10).until(
            lambda x: x.find_element_by_xpath(iOS_elements.el_cp_normal))
        el_capture.click()
        sc.capture_screen(fun_name, self.img_path)
        time.sleep(5)

        sc.logger.info('录制5s后点击录制按钮停止录制')
        el_capture.click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击左上角取消按钮')
        ba.find_element_click('name', 5, iOS_elements.el_cam_close)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“丢弃”按钮')
        ba.find_element_click('name', 5, iOS_elements.el_discard)
        sc.logger.info('拍摄-拍摄页放弃测试完成')

    def test_cancel_02_save(self):
        """拍摄-拍摄页保存."""
        sc.logger.info('拍摄-拍摄页保存')
        fun_name = 'test_cancel_save'

        sc.logger.info('点击“美颜趣拍”')
        WebDriverWait(
            sc.driver,
            5).until(lambda x: x.find_element_by_name('美颜趣拍')).click()

        sc.logger.info('切换拍摄模式:自拍美颜->高清相机')
        el_normal = "高清相机"
        ba.find_element_click('name', 5, el_normal)
        sc.capture_screen(fun_name, self.img_path)

        # 点拍
        sc.logger.info('录制两段5s的视频')
        el_capture = WebDriverWait(sc.driver, 10).until(
            lambda x: x.find_element_by_xpath(iOS_elements.el_cp_normal))
        for i in range(2):
            el_capture.click()
            sc.capture_screen(fun_name, self.img_path)
            time.sleep(5)
            el_capture.click()
            time.sleep(1)

        sc.logger.info('撤销第二段视频')
        for i in range(2):
            sc.driver.find_element_by_name("撤销").click()
            sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击左上角取消按钮')
        ba.find_element_click('name', 5, iOS_elements.el_cam_close)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“保存”按钮')
        ba.find_element_click('name', 5, iOS_elements.el_save)
        sc.logger.info('拍摄-拍摄页保存测试完成')
Пример #4
0
class TestEditCollage(TestCase):
    """编辑页面画中画的基本操作测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_edit_collage_01_img(self):
        """剪辑-画中画-图片添加."""
        sc.logger.info('剪辑-画中画-图片添加')
        fun_name = 'test_edit_collage_img'

        sc.logger.info('打开一个草稿视频')
        ba.home_first_click('更多草稿')

        sc.logger.info('点击草稿封面')
        ba.open_draft(iOS_elements.el_studio_draft)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“素材·效果”')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name("素材·效果")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"画中画"')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('画中画')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加图片画中画')
        ba.collage_add('图片')
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确认添加')
        ba.effect_add_confirm()
        sc.logger.info('剪辑-画中画-图片添加测试完成')

    def test_edit_collage_02_video(self):
        """剪辑-画中画-视频添加."""
        sc.logger.info('剪辑-画中画-视频添加')
        fun_name = 'test_edit_collage_video'

        sc.logger.info('点击"画中画"')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('画中画')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加视频画中画')
        ba.collage_add('视频')
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确认添加')
        ba.effect_add_confirm()
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('剪辑-画中画-视频添加测试完成')

    def test_edit_collage_03_gif(self):
        """剪辑-画中画-GIF添加."""
        sc.logger.info('剪辑-画中画-GIF添加')
        fun_name = 'test_edit_collage_gif'

        sc.logger.info('点击"画中画"')
        time.sleep(0.5)
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('画中画')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加gif画中画')
        ba.collage_add('GIF')
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确认添加')
        ba.effect_add_confirm()
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('剪辑-画中画-GIF搜索测试完成')

    def test_edit_collage_04_cancel(self):
        """剪辑-画中画-放弃."""
        sc.logger.info('剪辑-画中画-放弃')
        fun_name = 'test_edit_collage_cancel'

        sc.logger.info('点击"画中画"')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('画中画')).click()

        sc.logger.info('添加图片画中画')
        ba.collage_add('图片')
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('取消添加')
        ba.effect_add_cancel()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“存草稿”按钮')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name("存草稿")).click()
        sc.logger.info('剪辑-画中画-放弃测试完成')
Пример #5
0
class TestEditMusic(TestCase):
    """音乐相关操作测试测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_edit_music_01(self):
        """剪辑-多段配乐-添加."""
        sc.logger.info('剪辑-多段配乐-添加')
        fun_name = 'test_music_add'

        sc.logger.info('打开一个草稿视频')
        ba.home_first_click('更多草稿')

        sc.logger.info('点击草稿封面')
        ba.open_draft(iOS_elements.el_studio_draft)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“素材·效果”')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name("素材·效果")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info("添加一段'配乐'")
        ba.effects_music()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确认添加')
        ba.effect_add_confirm()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“存草稿”按钮')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name("存草稿")).click()

        try:
            WebDriverWait(sc.driver, 10,
                          1).until(lambda el: el.find_element_by_xpath(
                              '//XCUIElementTypeButton[@name="1"]')).click()
        except TimeoutException:
            sc.logger.info('返回首页后,无广告弹出')
        sc.logger.info('剪辑-多段配乐-添加测试完成')

    def test_edit_music_02(self):
        """剪辑-多段配乐-删除."""
        sc.logger.info('剪辑-多段配乐-删除')
        fun_name = 'test_camera_music_del'

        sc.logger.info('点击草稿封面')
        try:
            ba.open_draft(iOS_elements.el_studio_draft)
            sc.capture_screen(fun_name, self.img_path)
        except:
            sc.logger.info('关闭广告')
            WebDriverWait(sc.driver, 5,
                          1).until(lambda el: el.find_element_by_name(
                              iOS_elements.btn_ad_clo)).click()

            ba.open_draft(iOS_elements.el_studio_draft)
            sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“素材·效果”')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name("素材·效果")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"多段配乐"')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('多段配乐')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('当前视频已经有配乐,删除原有音乐')
        sc.driver.find_element_by_name('删除').click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确定')
        WebDriverWait(sc.driver, 5, 1).until(lambda x: x.find_element_by_name(
            iOS_elements.el_confirm_btn)).click()
        sc.logger.info('剪辑-多段配乐-删除测试完成')

    def test_edit_music_03(self):
        """剪辑-多段配乐-放弃."""
        sc.logger.info('剪辑-多段配乐-放弃')
        fun_name = 'test_camera_music_cancel'

        sc.logger.info('点击"多段配乐"')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('多段配乐')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info("添加一段'配乐'")
        ba.effects_music()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('取消添加')
        ba.effect_add_cancel()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“存草稿”按钮')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name("存草稿")).click()
        sc.logger.info('剪辑-多段配乐-放弃测试完成')
Пример #6
0
class TestPrivacy(TestCase):
    """权限获取测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_privacy_album(self):
        """权限获取"""
        sc.logger.info('权限获取')
        fun_name = 'test_privacy_album'

        sc.logger.info('点击创作中心主按钮')
        ba.home_enter()

        sc.logger.info('点击“视频剪辑”按钮')
        try:
            WebDriverWait(sc.driver, 5,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_home_edit)).click()
        except TimeoutException:
            WebDriverWait(sc.driver, 5,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.home_edit)).click()

        try:
            sc.driver.find_element_by_name("跳过").click()
            sc.capture_screen(fun_name, self.img_path)
        except NoSuchElementException:
            sc.logger.info('已跳过订阅页面')

        sc.logger.info("授权小影访问相册和媒体资料")
        try:
            WebDriverWait(
                sc.driver, 5,
                1).until(lambda x: x.find_element_by_name("好")).click()
            sc.capture_screen(fun_name, self.img_path)

            WebDriverWait(
                sc.driver, 5,
                1).until(lambda x: x.find_element_by_name("好")).click()
        except TimeoutException:
            sc.logger.info("已授权")

        sc.logger.info('返回首页')
        WebDriverWait(sc.driver, 5, 1).until(lambda x: x.find_element_by_name(
            iOS_elements.gallery_back)).click()
        sc.logger.info('相册授权测试完成')

    def test_privacy_cam(self):
        """权限获取"""
        sc.logger.info('权限获取')
        fun_name = 'test_privacy_cam'

        sc.logger.info('点击“高清拍摄”按钮')
        try:
            WebDriverWait(sc.driver, 3,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.home_camera)).click()
        except TimeoutException:
            WebDriverWait(sc.driver, 3,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_home_camera)).click()

        sc.logger.info("授权小影访问相机和麦克风")
        try:
            WebDriverWait(
                sc.driver, 5,
                1).until(lambda x: x.find_element_by_name("好")).click()
            sc.capture_screen(fun_name, self.img_path)

            WebDriverWait(
                sc.driver, 5,
                1).until(lambda x: x.find_element_by_name("好")).click()
        except TimeoutException:
            sc.logger.info("已授权")

        sc.logger.info('返回首页')
        WebDriverWait(sc.driver, 5, 1).until(lambda x: x.find_element_by_name(
            iOS_elements.el_cam_close)).click()

        sc.logger.info('拍摄授权测试完成')
Пример #7
0
class TestEditFX(TestCase):
    """特效的基本操作测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_edit_fx_01(self):
        """剪辑-特效下载."""
        sc.logger.info('剪辑-特效下载')
        fun_name = 'test_edit_fx_download'

        sc.logger.info('点击创作中心主按钮')
        ba.home_enter()

        sc.logger.info('点击视频剪辑')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_xpath(iOS_elements.el_home_edit)).click()

        sc.logger.info('添加视频')
        ba.gallery_clip_add('视频', 2)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击下一步')
        ba.find_element_click('predicate', 10, iOS_elements.el_gallery_next)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“效果”')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name("素材·效果")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"特效"')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name('特效')).click()
        sc.logger.info('剪辑-特效下载测试完成')

    def test_edit_fx_02(self):
        """剪辑-特效使用."""
        sc.logger.info('剪辑-特效使用')
        fun_name = 'test_edit_fx_use'

        el_more = 'xiaoying itembar down more'
        try:
            WebDriverWait(sc.driver, 5, 1).until(
                lambda x: x.find_element_by_name(el_more))
        except TimeoutException:
            sc.logger.info('当前位置已添加过"特效"')

            sc.logger.info('点击屏幕弹出已添加的特效编辑页面')
            ba.screen_tap('特效', 200, 200)

            sc.logger.info('删除')
            sc.driver.find_element_by_name('删除').click()

            sc.logger.info('添加')
            WebDriverWait(sc.driver, 10, 1).until(
                lambda x: x.find_element_by_name('添加')).click()

        sc.logger.info('下载“特效”')
        fx_list = sc.driver.find_elements_by_xpath(iOS_elements.el_fx_download)
        if fx_list:
            for fx in fx_list:
                fx.click()
                time.sleep(5)
        else:
            pass

        sc.logger.info('使用"特效"')
        sc.driver.find_element_by_xpath(iOS_elements.el_fx_cho).click()

        sc.logger.info('确认添加')
        sc.driver.find_element_by_name(iOS_elements.el_confirm_btn).click()
        time.sleep(5)

        sc.logger.info('再次添加特效')
        WebDriverWait(sc.driver, 3, 1).until(
            lambda x: x.find_element_by_name('添加')).click()

        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name(el_more))

        sc.logger.info('使用"特效"')
        sc.driver.find_element_by_xpath(iOS_elements.el_fx_cho).click()

        sc.logger.info('确认添加')
        sc.driver.find_element_by_name(iOS_elements.el_confirm_btn).click()
        time.sleep(5)
        sc.driver.find_element_by_name(iOS_elements.el_confirm_btn).click()

        sc.logger.info('点击“存草稿”按钮')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda el: el.find_element_by_name("存草稿")).click()

        try:
            WebDriverWait(sc.driver, 10, 1).until(
                lambda el: el.find_element_by_xpath('//XCUIElementTypeButton[@name="1"]')).click()
        except TimeoutException:
            sc.logger.info('返回首页后,无广告弹出')
        sc.logger.info('剪辑-特效使用测试完成')
Пример #8
0
class TestEditFilter(TestCase):
    """编辑滤镜的基本操作测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_edit_filter(self):
        """剪辑-滤镜下载/使用."""
        sc.logger.info('剪辑-滤镜下载/使用')
        fun_name = 'test_edit_filter'

        start_x = self.width // 2
        start_y = self.height // 8
        start_bottom = self.height - start_y

        sc.logger.info('打开一个草稿视频')
        ba.home_first_click('更多草稿')

        sc.logger.info('点击草稿封面')
        ba.open_draft(iOS_elements.el_studio_draft)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“镜头编辑”')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name("镜头编辑")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"滤镜"')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name("滤镜")).click()

        sc.logger.info('下载更多')
        try:
            sc.driver.find_element_by_name('下载更多').click()
        except NoSuchElementException:
            sc.logger.info('右滑一些,再选择下载更多')
            el_fliter = sc.driver.find_element_by_name("缓流")
            coord_x = el_fliter.location.get('x')
            coord_y = el_fliter.location.get('y')
            sc.swipe_by_ratio(coord_x, coord_y, 'right', 0.5, 500)

            sc.driver.find_element_by_name('下载更多').click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下拉刷新')
        ba.refresh('down', 0.3, 500, 1)

        sc.logger.info('下载并使用滤镜')
        while True:
            try:
                sc.driver.find_element_by_name(iOS_elements.el_store_download2).click()
                break
            except NoSuchElementException:
                sc.logger.info('当前页面已无未下载主题')
                sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.5, 300)

        sc.logger.info('使用滤镜')
        WebDriverWait(sc.driver, 20, 1).until(
            lambda x: x.find_element_by_name("使用")).click()

        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name("应用于全部镜头")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“确认”')
        sc.driver.find_element_by_name(iOS_elements.el_confirm_btn).click()

        sc.logger.info('点击“存草稿”按钮')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda el: el.find_element_by_name("存草稿")).click()

        sc.logger.info('剪辑-滤镜下载/使用测试完成')
Пример #9
0
class TestProportion(TestCase):
    """比例与背景的基本操作测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_proportion_01(self):
        '''剪辑-切换到比例.'''
        sc.logger.info('剪辑-切换到比例')
        fun_name = 'test_edit_proportion'

        sc.logger.info('打开一个草稿视频')
        ba.home_first_click('更多草稿')

        sc.logger.info('点击草稿封面')
        ba.open_draft(iOS_elements.el_studio_draft)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“镜头编辑”')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name("镜头编辑")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"比例"')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name("比例和背景")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('切换到"比例tab"')
        try:
            WebDriverWait(sc.driver, 5,
                          1).until(lambda x: x.find_element_by_name(
                              iOS_elements.btn_bg_pro)).click()
            sc.capture_screen(fun_name, self.img_path)
        except TimeoutException:
            sc.logger.info('已经在"比例tab"')

        sc.logger.info('剪辑-进入比例页面测试完成')

    def test_proportion_02(self):
        '''剪辑-切换1:1比例.'''
        sc.logger.info('剪辑-切换1:1比例')
        fun_name = 'test_edit_proportion_1:1'

        sc.logger.info('选择"1:1 比例"')
        el_proportion = "vivavideo_edit_icon_proportion_1_1"
        ba.clip_proportion(el_proportion)
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('剪辑-切换1:1比例测试完成')

    def test_proportion_03(self):
        '''剪辑-多选删除.'''
        sc.logger.info('剪辑-多选删除')
        fun_name = 'test_edit_clip_del'

        sc.logger.info('进入多选')
        try:
            WebDriverWait(
                sc.driver, 5, 1).until(lambda x: x.find_element_by_xpath(
                    '//XCUIElementTypeStaticText[@name="点击多选"]')).click()
            sc.capture_screen(fun_name, self.img_path)
        except TimeoutException:
            sc.logger.info('当前工程只有一个镜头,无法进入多选')
            return True

        sc.logger.info('多选-删除')
        ba.clip_mult_select()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“存草稿”按钮')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name("存草稿")).click()
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('剪辑-多选删除测试完成')
Пример #10
0
class TestCameraNormal(TestCase):
    """camera的基本操作测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    def setUp(self):
        sc.driver.launch_app()
        time.sleep(3)

    def tearDown(self):
        time.sleep(3)
        sc.driver.close_app()

    def test_normal_01_filter(self):
        """拍摄-滤镜下载."""
        sc.logger.info('拍摄-滤镜下载')
        fun_name = 'test_normal_filter_download'

        start_x = self.width // 2
        start_y = self.height // 8
        start_bottom = self.height - start_y

        sc.logger.info('点击创作中心主按钮')
        ba.home_enter()

        sc.logger.info('点击“高清拍摄”按钮')
        try:
            WebDriverWait(sc.driver, 3,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.home_camera)).click()
        except TimeoutException:
            WebDriverWait(sc.driver, 3,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_home_camera)).click()

        sc.logger.info('点击滤镜图标')
        time.sleep(1)
        try:
            WebDriverWait(sc.driver, 5,
                          1).until(lambda x: x.find_element_by_name(
                              iOS_elements.el_filter_icon)).click()
        except TimeoutException:
            sc.logger.info('滤镜列表已自动弹出')
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载滤镜')
        try:
            sc.logger.info('点击下载按钮')
            sc.driver.find_element_by_xpath(
                iOS_elements.el_filter_download).click()
            sc.capture_screen(fun_name, self.img_path)
            try:
                sc.driver.find_element_by_name('取消').click()
            except NoSuchElementException:
                sc.logger.info('该滤镜不是解锁滤镜')
        except NoSuchElementException:
            sc.logger.info('当前页面已无未下载滤镜')

        sc.logger.info('下载更多')
        try:
            time.sleep(0.5)
            sc.driver.find_element_by_name(iOS_elements.el_filter_more).click()
            sc.capture_screen(fun_name, self.img_path)
        except NoSuchElementException:
            sc.logger.info('当前页面是vip订阅页面')
            sc.driver.find_element_by_name(iOS_elements.el_vip_close).click()
            sc.capture_screen(fun_name, self.img_path)

            sc.logger.info('重新点击下载更多')
            sc.driver.find_element_by_name(iOS_elements.el_filter_more).click()
            sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载并使用滤镜')
        while True:
            try:
                sc.driver.find_element_by_name(
                    iOS_elements.el_store_download2).click()
                break
            except NoSuchElementException:
                sc.logger.info('当前页面已无未下载主题')
                sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.5, 300)

        sc.logger.info('使用滤镜')
        WebDriverWait(sc.driver, 20,
                      1).until(lambda x: x.find_element_by_name("使用")).click()

        sc.logger.info('退出拍摄')
        ba.find_element_click('name', 5, iOS_elements.el_cam_close)
        sc.logger.info('拍摄-滤镜下载测试完成')

    def test_normal_02_settings(self):
        """拍摄-设置相关."""
        sc.logger.info('拍摄-设置相关')
        fun_name = 'test_camera_normal_settings'

        sc.logger.info('点击“美颜趣拍”')
        WebDriverWait(
            sc.driver,
            5).until(lambda x: x.find_element_by_name('美颜趣拍')).click()

        sc.logger.info('切换拍摄模式:自拍美颜->高清相机')
        el_normal = "高清相机"
        ba.find_element_click('name', 5, el_normal)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击设置按钮')
        time.sleep(1)
        sc.driver.find_element_by_name(iOS_elements.el_cam_setting).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('闪光灯-开')
        try:
            ba.find_element_click('name', 5, iOS_elements.el_cam_flash)
            sc.capture_screen(fun_name, self.img_path)
        except TimeoutException:
            sc.logger.info('当前为前置拍摄,无闪光灯选项')

        sc.logger.info('网格显示')
        ba.find_element_click('name', 5, iOS_elements.el_cam_grid)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('倒计时')
        for i in range(4):
            ba.find_element_click('name', 5, iOS_elements.el_cam_time)
            sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('退出设置选项')
        ba.find_element_click('name', 5, iOS_elements.el_cam_setting)

        sc.logger.info('前后置切换')
        ba.find_element_click('name', 5, iOS_elements.el_cam_switch)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('视频尺寸,全屏切换到3:4')
        ba.find_element_click('name', 5, iOS_elements.el_ful)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('视频尺寸,3:4切换到1:1')
        ba.find_element_click('name', 5, iOS_elements.el_fou)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('视频尺寸,1:1切换到全屏')
        ba.find_element_click('name', 5, iOS_elements.el_one)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('切换拍摄模式:高清相机->自拍美颜')
        el_self = "自拍美颜"
        el_normal = "高清相机"
        el_music = "音乐视频"
        ba.find_element_click('name', 5, el_self)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('切换拍摄模式:自拍美颜->高清相机')
        ba.find_element_click('name', 5, el_normal)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('切换拍摄模式:高清相机->音乐视频')
        ba.find_element_click('name', 5, el_music)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('退出拍摄')
        ba.find_element_click('name', 5, iOS_elements.el_cam_close)
        sc.logger.info('拍摄-设置相关测试完成')

    def test_normal_03_shot(self):
        """拍摄-高清相机(前置1:1)."""
        sc.logger.info('拍摄-高清相机(前置1:1)')
        fun_name = 'test_camera_normal_shot'

        sc.logger.info('点击“美颜趣拍”')
        WebDriverWait(
            sc.driver,
            5).until(lambda x: x.find_element_by_name('美颜趣拍')).click()

        sc.logger.info('切换拍摄模式:自拍美颜->高清相机')
        el_normal = "高清相机"
        ba.find_element_click('name', 5, el_normal)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('切换到前置')
        time.sleep(1)
        sc.driver.find_element_by_name(iOS_elements.el_cam_switch).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('切换到1:1')
        ba.find_element_click('name', 5, iOS_elements.el_ful)
        ba.find_element_click('name', 5, iOS_elements.el_fou)
        sc.capture_screen(fun_name, self.img_path)

        # 点拍
        sc.logger.info('拍摄一段5s的视频')
        btn_rec = WebDriverWait(sc.driver, 10).until(
            lambda x: x.find_element_by_xpath(iOS_elements.el_cp_normal))
        ba.video_capture('点拍', btn_rec, 5)

        sc.logger.info('取消限制弹窗')
        try:
            WebDriverWait(sc.driver, 3,
                          1).until(lambda x: x.find_element_by_name(
                              iOS_elements.el_cancel)).click()
        except TimeoutException:
            sc.logger.info('限制弹窗已取消')

        sc.logger.info('点击“存草稿”按钮')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name("存草稿")).click()
        sc.logger.info('拍摄-高清相机拍摄完成')
Пример #11
0
class TestEditSticker(TestCase):
    """动画贴纸的测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_sticker_01(self):
        """剪辑-动画贴纸."""
        sc.logger.info('剪辑-进入动画贴纸')
        fun_name = 'test_edit_sticker'

        sc.logger.info('打开一个草稿视频')
        ba.home_first_click('更多草稿')

        sc.logger.info('点击草稿封面')
        ba.open_draft(iOS_elements.el_studio_draft)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“素材·效果”')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name("素材·效果")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“贴纸”')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda x: x.find_element_by_name("贴纸")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('剪辑-进入动画贴纸测试完成')

    def test_sticker_02(self):
        """剪辑-动画贴纸-添加."""
        sc.logger.info('剪辑-动画贴纸-添加')
        fun_name = 'test_edit_sticker_add'

        sc.logger.info('添加一个普通"贴纸"')
        ba.sticker_comm_add()

        sc.logger.info('确认添加')
        WebDriverWait(sc.driver, 5, 1).until(lambda x: x.find_element_by_name(
            iOS_elements.el_confirm_btn)).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加第二个贴纸并放弃')
        WebDriverWait(sc.driver, 10,
                      1).until(lambda x: x.find_element_by_name('添加')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('剪辑-动画贴纸-添加测试完成')

    def test_sticker_03(self):
        """剪辑-动画贴纸-GIF添加."""
        sc.logger.info('剪辑-动画贴纸-GIF添加')
        fun_name = 'test_edit_sticker_GIF'

        sc.logger.info('点击GIF')
        WebDriverWait(
            sc.driver, 10,
            1).until(lambda x: x.find_element_by_name('GIF')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加一个GIF"贴纸"')
        ba.material_used('下载')
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确定')
        time.sleep(0.5)
        WebDriverWait(sc.driver, 5, 1).until(lambda x: x.find_element_by_name(
            iOS_elements.el_confirm_btn)).click()

        sc.logger.info('剪辑-动画贴纸-GIF添加测试完成')

    def test_sticker_04(self):
        """剪辑-动画贴纸-放弃添加."""
        sc.logger.info('剪辑-动画贴纸-放弃添加')
        fun_name = 'test_edit_sticker_cancel'

        sc.logger.info('取消添加')
        WebDriverWait(sc.driver, 5, 1).until(lambda x: x.find_element_by_name(
            iOS_elements.el_cancel_btn)).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确定放弃')
        try:
            WebDriverWait(
                sc.driver, 5,
                1).until(lambda x: x.find_element_by_name('确认')).click()
            sc.capture_screen(fun_name, self.img_path)
        except TimeoutException:
            sc.logger.error('iOS此处有一个bug,贴纸未添加完成时,点击x,未弹出放弃弹窗')

        sc.logger.info('点击“存草稿”按钮')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name("存草稿")).click()
        sc.logger.info('剪辑-动画贴纸-放弃添加测试完成')
Пример #12
0
# -*- coding: utf-8 -*-
from iOS.Base import script_ultils as sc, iOS_elements
import time
from selenium.common.exceptions import TimeoutException, NoSuchElementException
from selenium.webdriver.support.ui import WebDriverWait
from appium.webdriver.common.touch_action import TouchAction
import random

# 获取屏幕尺寸
width, height = sc.get_size()


def home_enter():
    sc.logger.info('点击创作中心主按钮')
    try:
        WebDriverWait(sc.driver, 5,
                      1).until(lambda x: x.find_element_by_accessibility_id(
                          iOS_elements.el_home_create)).click()
    except TimeoutException:
        sc.logger.info('当前已经是在创作页面')

    sc.logger.info('下拉刷新')
    start_x = width // 2
    start_bottom = height // 2
    sc.swipe_by_ratio(start_x, start_bottom, 'down', 0.3, 500)


def find_element_click(method, timeout, el, duration=1):
    '''
    等待并点击某一控件.
    :param method: 寻找控件的方法
Пример #13
0
class TestExport(TestCase):
    """导出相关操作的测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_export_01_add(self):
        """导出-添加镜头."""
        sc.logger.info('导出-添加镜头')
        fun_name = 'test_export_add'

        sc.logger.info('打开一个草稿视频')
        ba.home_first_click('更多草稿')

        sc.logger.info('点击草稿封面')
        ba.open_draft(iOS_elements.el_studio_draft)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“镜头编辑”')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name("镜头编辑")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('从相册添加')
        ba.clip_add('相册')
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('拍摄添加镜头')
        ba.clip_add('拍摄')
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('导出-添加镜头测试完成')

    def test_export_02_del(self):
        """导出-删除镜头."""
        sc.logger.info('导出-删除镜头')
        fun_name = 'test_export_del'

        clip_list = sc.driver.find_elements_by_name('')

        if len(clip_list) >= 2:
            clip_list = clip_list[:2]

        for clip in clip_list:
            clip.click()

            WebDriverWait(
                sc.driver, 5,
                1).until(lambda x: x.find_element_by_name('确认')).click()
            time.sleep(0.5)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('保存/上传')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name("保存/上传")).click()
        sc.capture_screen(fun_name, self.img_path)

    def test_export_03_720P(self):
        """导出-720P."""
        sc.logger.info('导出-720P')
        fun_name = 'test_export_720P'

        sc.logger.info('点击“保存到相册”')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name("保存到相册")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“高清 720P”')
        ba.export_video("高清 720P")
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('导出-保存到相册-720P-二次导出测试完成')
Пример #14
0
class TestCreationShare(TestCase):
    """创作页面内分享相关的测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_share_01(self):
        """分享-标题&描述."""
        sc.logger.info('分享-标题&描述.')
        fun_name = 'test_share_title'

        sc.logger.info('点击创作中心主按钮')
        ba.home_enter()

        sc.logger.info('点击第一个草稿封面')
        ba.find_element_click('xpath', 5, iOS_elements.el_home_draft)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('保存/上传')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name("保存/上传")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('关闭定位服务')
        try:
            WebDriverWait(sc.driver, 3,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_loc_clo)).click()
            sc.capture_screen(fun_name, self.img_path)
        except TimeoutException:
            sc.logger.info('不是第一次点击保存/上传按钮')

        sc.logger.info('输入标题和描述')
        ba.publish_input()
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('导出-标题&描述测试完成')

    def test_share_02(self):
        """分享-封面编辑."""
        sc.logger.info('分享-封面编辑.')
        fun_name = 'test_share_cover'

        sc.logger.info('更换封面')
        ba.publish_cover_add()
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('导出-封面编辑测试完成')

    def test_share_03(self):
        """分享-其他设置."""
        sc.logger.info('分享-其他设置.')
        fun_name = 'test_share_other'

        sc.logger.info('点击更多')
        sc.driver.find_element_by_xpath(
            '//XCUIElementTypeStaticText[@name="更多"]').click()

        sc.logger.info('谁可以看')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('谁可以看')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('仅自己可见')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('仅自己可见')).click()
        sc.capture_screen(fun_name, self.img_path)

        try:
            WebDriverWait(
                sc.driver, 5,
                1).until(lambda x: x.find_element_by_name("我知道了")).click()
        except TimeoutException:
            sc.logger.info('不是第一次设置,无设置提示')
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('是否允许下载')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('是否允许下载')).click()

        sc.logger.info('不允许下载')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('不允许')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('返回发布页')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name(iOS_elements.pub_back)).click()

        sc.logger.info('导出-其他设置测试完成')

    def test_share_04(self):
        """分享-发布."""
        sc.logger.info('分享-发布')
        fun_name = 'test_share_publish'

        sc.logger.info('发布')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda x: x.find_element_by_name("发布")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('关闭定位服务')
        try:
            WebDriverWait(sc.driver, 3,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_loc_clo)).click()
            sc.capture_screen(fun_name, self.img_path)
        except TimeoutException:
            sc.logger.info('不是第一次点击发布按钮')

        sc.logger.info('数据网络时,取消上传')
        try:
            WebDriverWait(sc.driver, 3,
                          1).until(lambda x: x.find_element_by_xpath(
                              '//XCUIElementTypeButton[@name="取消"]')).click()

            sc.logger.error('当前是数据网络,取消上传,请手动执行相关测试')
            return False
        except TimeoutException:
            sc.logger.info('Wi-Fi可用')

        sc.logger.info('发布')
        ba.publish()
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('分享-发布测试完成')
Пример #15
0
class TestEditTransition(TestCase):
    """转场的基本操作测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_edit_transition_01(self):
        """剪辑-进入转场."""
        sc.logger.info('剪辑-进入转场')
        fun_name = 'test_edit_transition'

        sc.logger.info('打开一个草稿视频')
        ba.home_first_click('更多草稿')

        sc.logger.info('点击草稿封面')
        ba.open_draft(iOS_elements.el_studio_draft)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“镜头编辑”')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name("镜头编辑")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“转场icon”')
        try:
            WebDriverWait(sc.driver, 5,
                          1).until(lambda x: x.find_element_by_name(
                              iOS_elements.btn_transition_icon)).click()
            sc.capture_screen(fun_name, self.img_path)
        except TimeoutException:
            sc.logger.info('只有一个镜头,无法使用转场')
            return True

        sc.logger.info('剪辑-进入转场测试完成')

    def test_edit_transition_02(self):
        """剪辑-转场-下载使用."""
        sc.logger.info('剪辑-转场-下载使用')
        fun_name = 'test_edit_transition_use'

        sc.logger.info('下载并使用转场')
        ba.clip_transition()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“存草稿”按钮')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name("存草稿")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('剪辑-转场-下载使用测试完成')
Пример #16
0
class TestEditSound(TestCase):
    """配音的基本操作测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_edit_sound_01_rec(self):
        """剪辑-配音-录制."""
        sc.logger.info('剪辑-配音-录制')
        fun_name = 'test_edit_sound_rec'

        sc.logger.info('打开一个草稿视频')
        ba.home_first_click('更多草稿')

        sc.logger.info('点击草稿封面')
        ba.open_draft(iOS_elements.el_studio_draft)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“素材·效果”')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name("素材·效果")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('左滑并点击"配音和音效"')
        el_loc = WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name('画中画'))
        ba.swipe_left(el_loc, 0.3, 300)

        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name('配音和音效')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('删除已添加的配音或音效')
        try:
            WebDriverWait(sc.driver, 3, 1).until(
                lambda x: x.find_element_by_accessibility_id(iOS_elements.btn_rec_start))
        except TimeoutException:
            sc.logger.info('当前位置已添加配音或音效,删除后录制')
            sc.driver.find_element_by_name('删除').click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('"录制"一段音频')
        ba.sound_rec_add()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确认添加')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name(iOS_elements.el_confirm_btn)).click()
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('剪辑-配音-录制添加测试完成')

    def test_edit_sound_02_audio(self):
        """剪辑-配音-音效."""
        sc.logger.info('剪辑-配音-音效')
        fun_name = 'test_edit_sound_audio'

        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name('配音和音效')).click()

        sc.logger.info('删除已添加的配音或音效')
        try:
            WebDriverWait(sc.driver, 3, 1).until(
                lambda x: x.find_element_by_accessibility_id(iOS_elements.btn_rec_start))
        except TimeoutException:
            sc.logger.info('当前位置已添加配音或音效,删除后录制')
            sc.driver.find_element_by_name('删除').click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加一段音效')
        ba.sound_audio_add()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确认添加')
        time.sleep(2)
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name(iOS_elements.el_confirm_btn)).click()
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('剪辑-配音-音效添加测试完成')

    def test_edit_sound_03_cancel(self):
        """剪辑-配音-放弃."""
        sc.logger.info('剪辑-配音-放弃')
        fun_name = 'test_edit_sound_cancel'

        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name('配音和音效')).click()

        sc.logger.info('删除已添加的配音或音效')
        try:
            WebDriverWait(sc.driver, 3, 1).until(
                lambda x: x.find_element_by_accessibility_id(iOS_elements.btn_rec_start))
        except TimeoutException:
            sc.logger.info('当前位置已添加配音或音效,删除后录制')
            sc.driver.find_element_by_name('删除').click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('"录制"一段音频')
        ba.sound_rec_add()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('取消添加')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name(iOS_elements.el_cancel_btn)).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确定放弃')
        sc.driver.find_element_by_name('确认').click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“存草稿”按钮')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda el: el.find_element_by_name("存草稿")).click()
        sc.logger.info('剪辑-配音-放弃测试完成')
Пример #17
0
class TestPreviewAlbum(TestCase):
    """相册mv测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_preview_01(self):
        """预览页-创建相册MV."""
        sc.logger.info('预览页-创建相册MV')
        fun_name = 'test_preview_MV'

        sc.logger.info('相册MV')
        ba.home_first_click('相册MV')
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加图片')
        ba.gallery_clip_add('图片', 5)

        sc.logger.info('点击下一步进入预览页')
        ba.find_element_click('predicate', 10, iOS_elements.el_gallery_next)

    def test_preview_02(self):
        """预览页-相册MV."""
        sc.logger.info('预览页-相册MV')
        fun_name = 'test_preview_edit'

        sc.logger.info('点击“镜头编辑”')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name("镜头编辑")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“图片时长”')
        try:
            WebDriverWait(
                sc.driver, 5,
                1).until(lambda x: x.find_element_by_name("图片时长")).click()
            sc.capture_screen(fun_name, self.img_path)

            sc.logger.info('应用于全部镜头')
            sc.driver.find_element_by_name('应用于全部镜头').click()

            sc.logger.info('点击“确认”')
            sc.driver.find_element_by_name(iOS_elements.el_confirm_btn).click()
            sc.capture_screen(fun_name, self.img_path)
        except TimeoutException:
            sc.logger.info('当前镜头是gif图片,直接存草稿')

        sc.logger.info('点击“存草稿”按钮')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name("存草稿")).click()
        sc.logger.info('预览页-相册MV测试完成')
Пример #18
0
class TestGallery(TestCase):
    """Gallery的测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_gallery_01(self):
        """相册-视频相关操作."""
        sc.logger.info('相册-视频相关操作')
        fun_name = 'test_gallery_video'

        sc.logger.info('点击创作中心主按钮')
        ba.home_enter()

        sc.logger.info('点击“视频剪辑”按钮')
        try:
            WebDriverWait(sc.driver, 5,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_home_edit)).click()
        except TimeoutException:
            WebDriverWait(sc.driver, 5,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.home_edit)).click()

        sc.logger.info('选择一个视频并进行相关操作')
        ba.gallery_clip_op()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('相册-视频相关操作测试完成')

    def test_gallery_02(self):
        """相册-图片相关操作."""
        sc.logger.info('相册-图片相关操作')
        fun_name = 'test_gallery_img'

        sc.logger.info('选择图片')
        WebDriverWait(
            sc.driver, 3,
            1).until(lambda el: el.find_element_by_name('视频')).click()

        WebDriverWait(
            sc.driver, 3,
            1).until(lambda el: el.find_element_by_name('图片')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('选择一个图片并进行相关操作')
        ba.gallery_clip_op()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击下一步进入预览页')
        ba.find_element_click('predicate', 10, iOS_elements.el_gallery_next)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('返回创作页')
        ba.back_to_home()
        sc.logger.info('相册-图片相关操作测试完成')

    def test_gallery_03(self):
        """相册-放弃操作."""
        sc.logger.info('相册-放弃操作')
        fun_name = 'test_gallery_giveup'

        sc.logger.info('点击“视频剪辑”按钮')
        try:
            WebDriverWait(sc.driver, 5,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_home_edit)).click()
        except TimeoutException:
            WebDriverWait(sc.driver, 5,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.home_edit)).click()

        sc.logger.info('添加"视频"')
        ba.gallery_clip_add('视频', 2)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('左上角返回')
        WebDriverWait(sc.driver, 10,
                      1).until(lambda el: el.find_element_by_name(
                          iOS_elements.gallery_back)).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('放弃')
        WebDriverWait(
            sc.driver, 10,
            1).until(lambda el: el.find_element_by_name('丢弃')).click()
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('相册-放弃操作相关操作测试完成')
Пример #19
0
class TestHome(TestCase):
    """小影主页面的测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_home_01(self):
        """首页."""
        sc.logger.info('首页')
        fun_name = 'test_home'

        sc.logger.info('点击创作中心主按钮')
        ba.home_enter()

        sc.logger.info('VIP订阅页面展示')
        sc.driver.find_element_by_xpath(iOS_elements.el_home_vip).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.driver.find_element_by_name(iOS_elements.el_vip_close).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('首页广告展示及刷新')
        try:
            sc.driver.find_element_by_xpath(iOS_elements.el_home_ad).click()
            sc.capture_screen(fun_name, self.img_path)

            sc.logger.info('刷新广告')
            time.sleep(5)
            sc.driver.find_element_by_name(iOS_elements.el_ad_back).click()

            sc.logger.info('退出广告')
            try:
                WebDriverWait(sc.driver, 10, 1).until(
                    lambda x: x.find_element_by_name(iOS_elements.el_ad_clo)).click()
            except TimeoutException:
                sc.logger.info('已经退出广告页面了')
        except NoSuchElementException:
            sc.logger.error('首页加载出错了')
            pass

    sc.logger.info('首页-广告&内购icon测试完成')

    def test_home_02(self):
        """首页-工作室."""
        sc.logger.info('首页')
        fun_name = 'test_home_studio'

        sc.logger.info('点击"更多草稿"')
        time.sleep(1)
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name('更多草稿')).click()

        sc.logger.info('切换展示方式')
        try:
            WebDriverWait(sc.driver, 3, 1).until(
                lambda x: x.find_element_by_name(iOS_elements.btn_gridview)).click()
        except TimeoutException:
            WebDriverWait(sc.driver, 3, 1).until(
                lambda x: x.find_element_by_name(iOS_elements.btn_listview)).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击删除按钮')
        try:
            WebDriverWait(sc.driver, 3, 1).until(
                lambda x: x.find_element_by_xpath(iOS_elements.btn_studio_del1)).click()
        except TimeoutException:
            WebDriverWait(sc.driver, 3, 1).until(
                lambda x: x.find_element_by_xpath(iOS_elements.btn_studio_del2)).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确定删除')
        try:
            WebDriverWait(sc.driver, 3, 1).until(
                lambda x: x.find_element_by_name('是')).click()
        except TimeoutException:
            sc.logger.info('视频正在上传,无法删除')
            return True
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('首页-我的工作室操作测试完成')
Пример #20
0
class TestCameraMusic(TestCase):
    """camera音乐视频的基本测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_music_01(self):
        """拍摄-音乐视频(3:4)-音频下载."""
        sc.logger.info('拍摄-音乐视频(3:4)-音频下载')
        fun_name = 'test_music_download'

        sc.logger.info('点击音乐视频')
        ba.home_first_click('音乐视频')

        # 第一次从次要功能位打开音乐视频,拍摄按钮是另一个控件,所以先关闭再打开
        sc.logger.info('退出拍摄')
        time.sleep(0.5)
        WebDriverWait(sc.driver, 5, 1).until(lambda x: x.find_element_by_name(
            iOS_elements.el_cam_close)).click()

        # 退回首页后,常无法再次获取到音乐视频控件,此处重启一次app
        sc.logger.info('重启app')
        sc.driver.close_app()
        time.sleep(1)
        sc.driver.launch_app()

        sc.logger.info('点击音乐视频')
        ba.home_first_click('音乐视频')

        sc.logger.info('切换到3:4拍摄')
        time.sleep(1)
        ba.find_element_click('name', 5, iOS_elements.el_ful)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“点击添加配乐”按钮')
        sc.driver.find_element_by_name("点击添加配乐").click()
        time.sleep(2)

        sc.logger.info('下拉刷新')
        start_x = self.width // 2
        start_bottom = self.height // 5
        sc.swipe_by_ratio(start_x, start_bottom, 'down', 0.3, 300)

        sc.logger.info('下载音乐')
        sc.driver.find_element_by_xpath(iOS_elements.el_mus_download).click()
        time.sleep(10)
        sc.logger.info('拍摄-音乐视频(3:4)-音频下载完成')
        # music_list = sc.driver.find_elements_by_name(iOS_elements.el_mus_download)
        # # music_list.pop(0)
        # if len(music_list) >= 4:
        #     music_list = music_list[1:4]
        # for el_music in music_list:
        #     el_music.click()
        #     time.sleep(0.5)

    def test_music_02(self):
        """拍摄-音乐视频(3:4)-音频使用."""
        sc.logger.info('拍摄-音乐视频(3:4)-音频使用')
        fun_name = 'test_music_use'

        sc.logger.info('点击一首已下载音频试听')
        try:
            WebDriverWait(sc.driver, 10,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_mus_title1)).click()
        except:
            WebDriverWait(sc.driver, 10,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_mus_title2)).click()

        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“添加”按钮')
        WebDriverWait(sc.driver, 10,
                      1).until(lambda x: x.find_element_by_name('添加')).click()
        sc.capture_screen(fun_name, self.img_path)

        # 点拍
        sc.logger.info('拍摄一段5s的视频')
        btn_rec = WebDriverWait(sc.driver, 10).until(
            lambda x: x.find_element_by_xpath(iOS_elements.el_cp_music))
        ba.video_capture('点拍', btn_rec, 5)

        sc.logger.info('取消限制弹窗')
        try:
            WebDriverWait(sc.driver, 3,
                          1).until(lambda x: x.find_element_by_name(
                              iOS_elements.el_cancel)).click()
        except TimeoutException:
            sc.logger.info('限制弹窗已取消')

        sc.logger.info('返回创作页')
        ba.back_to_home()
        sc.logger.info('拍摄-音乐视频(3:4)-音频使用完成')

    def test_music_03(self):
        """拍摄-音乐视频-更换音乐重录."""
        sc.logger.info('拍摄-音乐视频-更换音乐重录')
        fun_name = 'test_music_change'

        sc.logger.info('点击音乐视频')
        time.sleep(1)
        sc.driver.find_element_by_name('音乐视频').click()

        sc.logger.info('点击“点击添加配乐”按钮')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name('点击添加配乐')).click()

        sc.logger.info('点击一首已下载音频试听')
        try:
            WebDriverWait(sc.driver, 10,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_mus_title1)).click()
        except:
            WebDriverWait(sc.driver, 10,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_mus_title2)).click()

        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“添加”按钮')
        sc.driver.find_element_by_name('添加').click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击音乐标题')
        WebDriverWait(sc.driver, 10,
                      1).until(lambda x: x.find_element_by_xpath(
                          iOS_elements.el_mus_change)).click()

        sc.logger.info('更换音乐重录')
        sc.driver.find_element_by_name("更换音乐重录").click()

        sc.logger.info('点击一首已下载音频试听')
        try:
            WebDriverWait(sc.driver, 10,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_mus_title1)).click()
        except:
            WebDriverWait(sc.driver, 10,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_mus_title2)).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“添加”按钮')
        sc.driver.find_element_by_name('添加').click()
        sc.capture_screen(fun_name, self.img_path)

        # 点拍
        sc.logger.info('开始录制')
        el_capture = WebDriverWait(sc.driver, 10).until(
            lambda x: x.find_element_by_xpath(iOS_elements.el_cp_music))
        el_capture.click()
        sc.capture_screen(fun_name, self.img_path)
        time.sleep(5)

        sc.logger.info('录制5s后点击录制按钮停止录制')
        el_capture.click()
        sc.capture_screen(fun_name, self.img_path)

        try:
            sc.logger.info('点击确认按钮')
            WebDriverWait(sc.driver, 5,
                          1).until(lambda el: el.find_element_by_name(
                              iOS_elements.el_cam_next)).click()
        except TimeoutException:
            sc.logger.info('音乐时长较短,已自动跳转预览页')
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('取消限制弹窗')
        try:
            WebDriverWait(sc.driver, 3,
                          1).until(lambda x: x.find_element_by_name(
                              iOS_elements.el_cancel)).click()
        except TimeoutException:
            sc.logger.info('限制弹窗已取消')

        sc.logger.info('返回创作页')
        ba.back_to_home()
        sc.logger.info('拍摄-音乐视频-更换音乐重录完成')

    def test_music_04(self):
        """拍摄-音乐视频-直接重录."""
        sc.logger.info('拍摄-音乐视频-直接重录')
        fun_name = 'test_music_redo'

        sc.logger.info('点击音乐视频')
        time.sleep(1)
        sc.driver.find_element_by_name('音乐视频').click()

        sc.logger.info('点击“点击添加配乐”按钮')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name('点击添加配乐')).click()

        sc.logger.info('点击一首已下载音频试听')
        try:
            WebDriverWait(sc.driver, 10,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_mus_title1)).click()
        except:
            WebDriverWait(sc.driver, 10,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_mus_title2)).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“添加”按钮')
        sc.driver.find_element_by_name('添加').click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击音乐标题')
        WebDriverWait(sc.driver, 10,
                      1).until(lambda x: x.find_element_by_xpath(
                          iOS_elements.el_mus_change)).click()

        sc.logger.info('直接重录')
        sc.driver.find_element_by_name("直接重录").click()

        # 点拍
        sc.logger.info('开始录制')
        el_capture = WebDriverWait(sc.driver, 10).until(
            lambda x: x.find_element_by_xpath(iOS_elements.el_cp_music))
        el_capture.click()
        sc.capture_screen(fun_name, self.img_path)
        time.sleep(5)

        sc.logger.info('录制5s后点击录制按钮停止录制')
        el_capture.click()
        sc.capture_screen(fun_name, self.img_path)

        try:
            sc.logger.info('点击确认按钮')
            WebDriverWait(sc.driver, 5,
                          1).until(lambda el: el.find_element_by_name(
                              iOS_elements.el_cam_next)).click()
        except TimeoutException:
            sc.logger.info('音乐时长较短,已自动跳转预览页')
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('取消限制弹窗')
        try:
            WebDriverWait(sc.driver, 3,
                          1).until(lambda x: x.find_element_by_name(
                              iOS_elements.el_cancel)).click()
        except TimeoutException:
            sc.logger.info('限制弹窗已取消')

        sc.logger.info('点击“存草稿”按钮')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name("存草稿")).click()
        sc.logger.info('拍摄-音乐视频-直接重录完成')
Пример #21
0
class TestUserLogin(TestCase):
    """用户登录测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_login_01_start(self):
        """测试登录页面未登录时的初始状态
        """
        sc.logger.info('登录页面初始状态检查测试开始')
        fun_name = 'test_login_origin'

        sc.logger.info('授权小影发送通知')
        try:
            WebDriverWait(
                sc.driver, 3,
                1).until(lambda x: x.find_element_by_name("允许")).click()
        except TimeoutException:
            sc.logger.info('已授权小影发送通知')

        # sc.logger.info('执行引导操作')
        # try:
        #     time.sleep(2)
        #     sc.driver.find_element_by_name("下一步").click()
        #     sc.driver.find_element_by_name("下一步").click()
        #     sc.driver.find_element_by_name("完成").click()
        # except NoSuchElementException:
        #     sc.logger.info('已经执行过操作引导页面')

        sc.logger.info('小影圈页面-关闭活动弹窗')
        try:
            sc.driver.find_element_by_xpath(iOS_elements.home_clo).click()
        except NoSuchElementException:
            sc.logger.info('当前无或者已关闭活动弹窗')

        sc.logger.info('切换到"我"')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_xpath(iOS_elements.btn_me)).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('小影圈页面-关闭活动弹窗')
        try:
            sc.driver.find_element_by_xpath(iOS_elements.home_clo).click()
        except NoSuchElementException:
            sc.logger.info('当前无或者已关闭活动弹窗')

    @staticmethod
    def login_judge():
        """判断是否已经登录."""
        btn_login = "******"
        try:
            el_login_btn = sc.driver.find_element_by_name(btn_login)
        except NoSuchElementException:
            sc.logger.info('未找到"注册/登录"按钮,用户已经成功登录')
            return True
        else:
            sc.logger.info('找到"注册/登录"按钮,用户未登录')
            return el_login_btn

    @staticmethod
    def qq_login(username, password):
        """使用qq登录."""

        sc.logger.info('点击"QQ账号"')
        try:
            WebDriverWait(
                sc.driver, 10).until(lambda x: x.find_element_by_xpath(
                    '//XCUIElementTypeStaticText[@name="QQ登录"]')).click()
        except TimeoutException:
            sc.driver.find_element_by_name("使用此账号登录").click()

        try:
            try:
                WebDriverWait(
                    sc.driver, 10).until(lambda x: x.find_element_by_xpath(
                        "//XCUIElementTypeButton[@name='登录']")).click()
            except TimeoutException:
                sc.driver.find_element_by_name("授权并登录").click()
            sc.logger.info('QQ账号已登录,直接点击"授权并登录"')
        except NoSuchElementException:
            # 授权页面的登录有时显示"授权并登录",有时显示"登录",所以此处输入账号登录的判断需要再优化
            sc.logger.info('QQ账号未登录,请输入QQ账号及密码登录')
            sc.logger.info('输入QQ账号')
            el_account = sc.driver.find_element_by_accessibility_id('帐号')
            el_account.click()
            el_account.send_keys(username)

            sc.logger.info()
            el_passwd = sc.driver.find_element_by_accessibility_id('输入QQ密码')
            el_passwd.click()
            el_passwd.send_keys(password)

            sc.logger.info('点击“登录”按钮')
            sc.driver.find_element_by_name('登录').click()

        sc.logger.info('检查QQ授权登录是否成功')
        try:
            WebDriverWait(
                sc.driver,
                10).until(lambda el_settings: el_settings.find_element_by_name(
                    iOS_elements.btn_settings))
            sc.logger.info('授权登录成功')
            try:
                sc.driver.find_element_by_name("icon dj close").click()
            except NoSuchElementException:
                sc.logger.info('非首次登录,已跳过领取特权')
        except TimeoutException:
            sc.logger.info('QQ授权登录超时')

        if TestUserLogin.login_judge() is True:
            return True
        return False

    @staticmethod
    def login_method(req_method, username, passwd):
        """定义带登录方法的登录方式,目前国内只支持三种."""
        method_list = ['weibo', 'wechat', 'QQ']
        if req_method not in method_list:
            sc.logger.error('不支持的登录方式: %s', req_method)
            return False

        if req_method == 'QQ':
            return TestUserLogin.qq_login(username, passwd)
        else:
            return False

    @staticmethod
    def test_login_02_qq():
        """国内用户测试使用qq登录."""
        sc.logger.info('登录页面QQ登录测试开始')
        login_res = TestUserLogin.login_judge()
        if login_res is True:
            assert True
        else:
            sc.logger.info('点击"注册/登录"按钮')
            login_res.click()
            username = '******'
            passwd = 'qa123456'
            login_res = TestUserLogin.login_method('QQ', username, passwd)

        assert login_res is not False
Пример #22
0
class TestUserFans(TestCase):
    """测试用户空间粉丝的测试类,分步截图."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_user_fans(self):
        """测试用户空间粉丝页面的初始状态."""
        sc.logger.info('用户空间粉丝页面初始状态检查测试开始')
        fun_name = 'test_user_fans'

        sc.logger.info('点击个人中心主按钮')
        p_btn = 'com.quvideo.xiaoying:id/img_studio'
        WebDriverWait(
            sc.driver, 10,
            1).until(lambda c_btn: c_btn.find_element_by_id(p_btn)).click()

        el_tab_list = sc.driver.find_elements_by_id(
            'com.quvideo.xiaoying:id/text_tab_title')

        for el_tab in el_tab_list:
            if el_tab.text == '粉丝':
                sc.logger.info('点击“粉丝”tab')
                el_tab.click()
        sc.logger.info('粉丝页面初始状态截图开始')
        sc.capture_screen(fun_name, self.img_path)
        assert el_tab is not None

    def test_fans_follow(self):
        """粉丝关注/取消关注测试."""
        sc.logger.info('用户空间粉丝页面关注状态测试开始')
        fun_name = 'test_fans_follow'

        btn_follow = 'com.quvideo.xiaoying:id/btn_follow_state'
        WebDriverWait(
            sc.driver, 10,
            1).until(lambda el: el.find_element_by_id(btn_follow)).click()

        el_btn_follow = sc.driver.find_element_by_id(btn_follow)

        if el_btn_follow.text == '已关注':
            sc.logger.info('点击第一个已关注状态按钮')
            el_btn_follow.click()

            pos_btn = 'com.quvideo.xiaoying:id/buttonDefaultPositive'
            WebDriverWait(
                sc.driver, 10,
                1).until(lambda el: el.find_element_by_id(pos_btn)).click()

            sc.logger.info('第一次取消点击后,关注状态截图')
            sc.capture_screen(fun_name, self.img_path)
        else:
            sc.logger.info('点击第一个关注状态按钮')
            el_btn_follow.click()
            sc.logger.info('第一次点击关注后,关注状态截图')
            sc.capture_screen(fun_name, self.img_path)
        assert el_btn_follow is not None

    def test_fans_home(self):
        """点击粉丝头像进入粉丝空间测试."""
        sc.logger.info('粉丝空间空间测试')
        fun_name = 'test_fans_home'

        avatar_img = 'com.quvideo.xiaoying:id/avatar_img'
        WebDriverWait(
            sc.driver, 10,
            1).until(lambda el: el.find_element_by_id(avatar_img)).click()

        sc.logger.info('点击粉丝头像后,进入粉丝空间截图')
        sc.capture_screen(fun_name, self.img_path)
        sc.driver.press_keycode(4)
        assert avatar_img is not None

    def test_fans_list(self):
        """粉丝页面上下滑动测试."""
        sc.logger.info('用户空间作品页面上下滑动测试开始')
        fun_name = 'test_fans_list'
        start_x = self.width // 2
        start_y = self.height // 4
        start_bottom = self.height - start_y

        time.sleep(1)
        # 先上滑
        sc.logger.info('上滑截图开始')
        result_up = sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.7, 300)
        time.sleep(1)
        sc.capture_screen(fun_name, self.img_path)

        # 再下滑,同理
        sc.logger.info('下滑截图开始')
        result_down = sc.swipe_by_ratio(start_x, start_y, 'down', 0.3, 300)
        time.sleep(1)
        sc.capture_screen(fun_name, self.img_path)

        assert result_up and result_down is True
Пример #23
0
class TestEditEffects(TestCase):
    """复杂编辑-添加多个效果测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_effcts_01_music(self):
        """复杂操作-添加配乐."""
        sc.logger.info('复杂操作-添加配乐')
        fun_name = 'test_effcts_music'

        sc.logger.info('打开一个草稿视频')
        ba.home_first_click('更多草稿')

        sc.logger.info('点击草稿封面')
        ba.open_draft(iOS_elements.el_studio_draft)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“素材·效果”')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name("素材·效果")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"多段配乐"')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name('多段配乐')).click()

        sc.logger.info("循环添加3个'配乐'")
        for i in range(3):
            ba.loop_add_music()
            time.sleep(1)
            sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确认添加')
        sc.logger.info('确定')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name(iOS_elements.el_confirm_btn)).click()
        sc.logger.info('复杂操作-添加配乐测试完成')

    def test_effcts_02_text(self):
        """复杂操作-添加字幕."""
        sc.logger.info('复杂操作-添加字幕')
        fun_name = 'test_effcts_text'

        sc.logger.info('点击"字幕"')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name('字幕')).click()

        sc.logger.info('添加动态字幕')
        for i in range(3):
            ba.loop_add_text()
            time.sleep(1)
            sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加普通字幕')
        for i in range(3):
            ba.loop_add_comm_text()
            time.sleep(1)
            sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('切换到字体')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name(iOS_elements.btn_text_font)).click()

        sc.logger.info('点击"下载"按钮')
        try:
            WebDriverWait(sc.driver, 5, 1).until(
                lambda x: x.find_element_by_xpath(iOS_elements.btn_font_download)).click()
        except TimeoutException:
            sc.logger.info('当前页面已无为下载字体')

        sc.logger.info('切换到字体设置页面')
        sc.driver.find_element_by_name(iOS_elements.btn_text_set).click()

        sc.logger.info('随机对齐方式')
        el_align = [iOS_elements.btn_text_c, iOS_elements.btn_text_l, iOS_elements.btn_text_r]
        sc.driver.find_element_by_name(random.choice(el_align)).click()

        sc.logger.info('点击阴影开关')
        sc.driver.find_element_by_xpath("//*/XCUIElementTypeSwitch[1]").click()

        sc.logger.info('点击字幕动画开关')
        sc.driver.find_element_by_xpath("//*/XCUIElementTypeSwitch[2]").click()

        sc.logger.info('确认添加')
        ba.effect_add_confirm()
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('复杂操作-添加字幕测试完成')

    def test_effcts_03_sticker(self):
        """复杂操作-添加贴纸."""
        sc.logger.info('复杂操作-添加贴纸')
        fun_name = 'test_edit_sticker'

        sc.logger.info('点击“贴纸”')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name("贴纸")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加普通贴纸')
        for i in range(3):
            try:
                sc.logger.info('点击"添加"')
                WebDriverWait(sc.driver, 3, 1).until(
                    lambda x: x.find_element_by_name('添加')).click()
            except TimeoutException:
                sc.logger.info('第一次进入贴纸,无添加按钮')

            sc.logger.info('选择一个普通"贴纸"添加')
            WebDriverWait(sc.driver, 5, 1).until(
                lambda x: x.find_element_by_xpath(iOS_elements.el_sticker_cho)).click()

            sc.logger.info('确认添加')
            WebDriverWait(sc.driver, 5, 1).until(
                lambda x: x.find_element_by_name(iOS_elements.el_confirm_btn)).click()
            sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加GIF贴纸')
        for i in range(3):
            WebDriverWait(sc.driver, 3, 1).until(
                lambda x: x.find_element_by_name('添加')).click()

            sc.logger.info('点击GIF')
            WebDriverWait(sc.driver, 5, 1).until(
                lambda x: x.find_element_by_name('GIF')).click()
            sc.capture_screen(fun_name, self.img_path)

            sc.logger.info('添加一个GIF"贴纸"')
            ba.material_used('下载')
            sc.capture_screen(fun_name, self.img_path)

            sc.logger.info('确定')
            time.sleep(0.5)
            WebDriverWait(sc.driver, 5, 1).until(
                lambda x: x.find_element_by_name(iOS_elements.el_confirm_btn)).click()

        sc.logger.info('退出贴纸添加页面')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name(iOS_elements.el_confirm_btn)).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('复杂操作-添加贴纸测试完成')

    def test_effcts_04_collage(self):
        """复杂操作-添加画中画."""
        sc.logger.info('复杂操作-添加画中画')
        fun_name = 'test_edit_collage'

        sc.logger.info('点击"画中画"')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name('画中画')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加图片画中画')
        ba.collage_add('图片')
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确认添加')
        ba.effect_add_confirm()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"画中画"')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name('画中画')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加视频画中画')
        ba.collage_add('视频')
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确认添加')
        ba.effect_add_confirm()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"画中画"')
        time.sleep(0.5)
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name('画中画')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加gif画中画')
        ba.collage_add('GIF')
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确认添加')
        ba.effect_add_confirm()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('复杂操作-添加画中画测试完成')

    def test_effcts_05_fx(self):
        """复杂操作-添加特效."""
        sc.logger.info('复杂操作-添加特效')
        fun_name = 'test_edit_fx'

        sc.logger.info('点击"特效"')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name('特效')).click()
        sc.capture_screen(fun_name, self.img_path)

        el_more = 'xiaoying itembar down more'
        try:
            WebDriverWait(sc.driver, 5, 1).until(
                lambda x: x.find_element_by_name(el_more))
        except TimeoutException:
            sc.logger.info('当前位置已添加过"特效"')

            sc.logger.info('点击屏幕弹出已添加的特效编辑页面')
            ba.screen_tap('特效', 200, 200)

            sc.logger.info('删除')
            sc.driver.find_element_by_name('删除').click()

            sc.logger.info('添加')
            WebDriverWait(sc.driver, 10, 1).until(
                lambda x: x.find_element_by_name('添加')).click()

        sc.logger.info('下载“特效”')
        fx_list = sc.driver.find_elements_by_xpath(iOS_elements.el_fx_download)
        if fx_list:
            for fx in fx_list:
                fx.click()
                time.sleep(5)
        else:
            pass

        sc.logger.info('使用"特效"')
        sc.driver.find_element_by_xpath(iOS_elements.el_fx_cho).click()

        sc.logger.info('确认添加')
        sc.driver.find_element_by_name(iOS_elements.el_confirm_btn).click()
        time.sleep(5)

        sc.logger.info('再次添加特效')
        WebDriverWait(sc.driver, 3, 1).until(
            lambda x: x.find_element_by_name('添加')).click()

        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name(el_more))

        sc.logger.info('使用"特效"')
        sc.driver.find_element_by_xpath(iOS_elements.el_fx_cho).click()

        sc.logger.info('确认添加')
        sc.driver.find_element_by_name(iOS_elements.el_confirm_btn).click()
        time.sleep(5)
        sc.driver.find_element_by_name(iOS_elements.el_confirm_btn).click()
        sc.logger.info('复杂操作-添加特效测试完成')

    def test_effcts_05_sound(self):
        """复杂操作-添加配音和音效."""
        sc.logger.info('复杂操作-添加配音和音效')
        fun_name = 'test_edit_sound'

        sc.logger.info('左滑并点击"配音和音效"')
        el_loc = WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name('画中画'))
        ba.swipe_left(el_loc, 0.3, 300)

        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name('配音和音效')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('"录制"一段音频')
        ba.sound_rec_add()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加一段音效')
        ba.sound_audio_add()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确认添加')
        time.sleep(2)
        WebDriverWait(sc.driver, 15, 1).until(
            lambda x: x.find_element_by_name(iOS_elements.el_confirm_btn)).click()
        sc.logger.info('复杂操作-添加配音和音效测试完成')

    def test_effcts_06_publish(self):
        """复杂操作-发布."""
        sc.logger.info('复杂操作-发布')
        fun_name = 'test_edit_publish'

        sc.logger.info('保存/上传')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name("保存/上传")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('输入标题和描述')
        ba.publish_input()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('发布')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name("发布")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('关闭定位服务')
        try:
            WebDriverWait(sc.driver, 3, 1).until(
                lambda x: x.find_element_by_xpath(iOS_elements.el_loc_clo)).click()
            sc.capture_screen(fun_name, self.img_path)
        except TimeoutException:
            sc.logger.info('不是第一次点击发布按钮')

        sc.logger.info('选择480P导出')
        try:
            sc.driver.find_element_by_name("清晰 480P").click()
        except NoSuchElementException:
            sc.logger.error('网络不可用,取消上传,请手动执行相关测试')
            return False

        sc.logger.info('开始导出并上传')
        try:
            WebDriverWait(sc.driver, 300, 1).until(
                lambda x: x.find_element_by_name('发现'))
        except TimeoutException:
            sc.logger.error('发布超时')

        sc.logger.info('复杂操作-发布测试完成')
Пример #24
0
class TestCameraSelf(TestCase):
    """camera美颜趣拍的测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_self_01_sticker(self):
        """拍摄-美颜趣拍(全屏)-人脸贴纸."""
        sc.logger.info('拍摄-美颜趣拍(全屏)-人脸贴纸')
        fun_name = 'test_01_sticker'

        sc.logger.info('点击“美颜趣拍”')
        ba.home_first_click("美颜趣拍")
        sc.capture_screen(fun_name, self.img_path)

        # 第一次从次要功能位打开自拍,拍摄按钮是音乐视频的控件,所以先关闭再打开
        sc.logger.info('退出拍摄')
        time.sleep(1)
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name(iOS_elements.el_cam_close)).click()

        sc.logger.info('点击“美颜趣拍”')
        WebDriverWait(sc.driver, 5).until(
            lambda x: x.find_element_by_name('美颜趣拍')).click()

        sc.logger.info('点击人脸贴纸icon')
        ba.find_element_click('name', 10, iOS_elements.el_sticker_icon)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载人脸贴纸')
        WebDriverWait(sc.driver, 5).until(
            lambda x: x.find_element_by_xpath(iOS_elements.el_sticker_download)).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('使用下载的人脸贴纸')
        ba.find_element_click('xpath', 10, iOS_elements.el_sticker_used)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击屏幕消除贴纸控件')
        actions = TouchAction(sc.driver)
        actions.tap(None, 200, 200).release().perform()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('拍摄-美颜趣拍(全屏)-人脸贴纸测试完成')

    def test_self_02_capture(self):
        """拍摄-美颜趣拍(全屏)-拍摄."""
        sc.logger.info('拍摄-美颜趣拍(全屏)-拍摄')
        fun_name = 'test_02_capture'

        # 点拍
        sc.logger.info('拍摄一段5s的视频')
        btn_rec = WebDriverWait(sc.driver, 10).until(
            lambda x: x.find_element_by_xpath(iOS_elements.el_cp_self))
        ba.video_capture('点拍', btn_rec, 5)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('取消限制弹窗')
        try:
            WebDriverWait(sc.driver, 5, 1).until(
                lambda x: x.find_element_by_name(iOS_elements.el_cancel)).click()
        except TimeoutException:
            sc.logger.info('限制弹窗已取消')

        sc.logger.info('点击“存草稿”按钮')
        sc.driver.find_element_by_name("存草稿").click()
        sc.logger.info('拍摄-美颜趣拍(全屏)-拍摄测试完成')
Пример #25
0
class TestPreviewTheme(TestCase):
    """预览页面的theme测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_preview_theme(self):
        """预览页-主题·配乐页面."""
        sc.logger.info('预览页-主题·配乐页面')
        fun_name = 'test_preview_theme'

        sc.logger.info('点击创作中心主按钮')
        ba.home_enter()

        sc.logger.info('点击“视频剪辑”按钮')
        try:
            WebDriverWait(sc.driver, 5,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_home_edit)).click()
        except TimeoutException:
            WebDriverWait(sc.driver, 5,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.home_edit)).click()

        sc.logger.info('添加视频')
        ba.gallery_clip_add('视频', 1)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('切换到图片')
        sc.driver.find_element_by_name("视频").click()
        sc.driver.find_element_by_name("图片").click()

        sc.logger.info('添加图片')
        ba.gallery_clip_add('图片', 2)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击下一步')
        ba.find_element_click('predicate', 10, iOS_elements.el_gallery_next)

        sc.logger.info('点击“主题·配乐”')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name("主题·配乐")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('暂停播放')
        WebDriverWait(sc.driver, 10, 1).until(
            lambda x: x.find_element_by_name(iOS_elements.btn_stop)).click()

        sc.logger.info('使用“主题”')
        try:
            WebDriverWait(sc.driver, 3,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_theme_use)).click()
        except TimeoutException:
            sc.logger.info('当前页面无已下载的主题')
            WebDriverWait(sc.driver, 10,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_theme_download)).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载更多')
        sc.driver.find_element_by_name('下载更多').click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下拉刷新')
        ba.refresh('down', 0.3, 500, 1)
        time.sleep(3)

        sc.logger.info('下载并使用主题')
        try:
            WebDriverWait(
                sc.driver, 5,
                1).until(lambda x: x.find_element_by_name("使用")).click()
        except TimeoutException:
            WebDriverWait(sc.driver, 5,
                          1).until(lambda x: x.find_element_by_name(
                              iOS_elements.el_store_download1)).click()

            sc.logger.info('使用主题')
            WebDriverWait(
                sc.driver, 10,
                1).until(lambda x: x.find_element_by_name("使用")).click()
            sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('暂停播放')
        WebDriverWait(sc.driver, 10, 1).until(
            lambda x: x.find_element_by_name(iOS_elements.btn_stop)).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“存草稿”按钮')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name("存草稿")).click()

        sc.logger.info('预览页-主题·配乐测试完成')
Пример #26
0
class TestEditClipsAdd(TestCase):
    """镜头添加相关操作的测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_clips_add_01(self):
        """剪辑-添加镜头-相册添加."""
        sc.logger.info('剪辑-添加镜头-相册添加')
        fun_name = 'test_edit_add_clips'

        sc.logger.info('打开一个草稿视频')
        ba.home_first_click('更多草稿')

        sc.logger.info('点击草稿封面')
        ba.open_draft(iOS_elements.el_studio_draft)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“镜头编辑”')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name("镜头编辑")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('从相册添加')
        ba.clip_add('相册')
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('退出预览页')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_xpath(iOS_elements.el_pre_clo)).click()

        sc.logger.info('确定退出')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name('保存并退出')).click()

        try:
            WebDriverWait(sc.driver, 10, 1).until(
                lambda el: el.find_element_by_xpath('//XCUIElementTypeButton[@name="1"]')).click()
        except TimeoutException:
            sc.logger.info('返回首页后,无广告弹出')
        sc.logger.info('剪辑-添加镜头-相册添加测试完成')

    def test_clips_add_02(self):
        """剪辑-添加镜头-拍摄添加."""
        sc.logger.info('剪辑-添加镜头-拍摄添加')
        fun_name = 'test_edit_clips_shot'

        sc.logger.info('点击草稿封面')
        ba.open_draft(iOS_elements.el_studio_draft)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“镜头编辑”')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name("镜头编辑")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('拍摄添加镜头')
        ba.clip_add('拍摄')
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('退出预览页')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_xpath(iOS_elements.el_pre_clo)).click()

        sc.logger.info('确定退出')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name('保存并退出')).click()

        try:
            WebDriverWait(sc.driver, 10, 1).until(
                lambda el: el.find_element_by_xpath('//XCUIElementTypeButton[@name="1"]')).click()
        except TimeoutException:
            sc.logger.info('返回首页后,无广告弹出')
        sc.logger.info('剪辑-添加镜头-拍摄添加测试完成')

    def test_clips_add_03(self):
        """剪辑-添加镜头-放弃."""
        sc.logger.info('剪辑-添加镜头-放弃')
        fun_name = 'test_edit_clips_cancel'

        sc.logger.info('点击草稿封面')
        ba.open_draft(iOS_elements.el_studio_draft)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“镜头编辑”')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name("镜头编辑")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"添加镜头"按钮')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name(iOS_elements.btn_clip_add)).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('选择相册')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name('相册')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('勾选镜头')
        ba.gallery_clip_add('视频', 2)

        sc.logger.info('左上角返回')
        sc.driver.find_element_by_name(iOS_elements.gallery_back).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确定放弃')
        try:
            WebDriverWait(sc.driver, 5, 1).until(
                lambda x: x.find_element_by_name('确认')).click()
            sc.capture_screen(fun_name, self.img_path)
        except TimeoutException:
            sc.logger.error('没有勾选中镜头,需要手动再验证!')
            return False

        sc.logger.info('剪辑-放弃添加镜头-测试完成')
Пример #27
0
class TestTemplate(TestCase):
    """素材中心测试类."""

    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_template_01_theme(self):
        """素材中心-主题."""
        sc.logger.info('素材中心-主题')
        fun_name = 'test_template_theme'

        ba.home_first_click('素材中心')
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击顶部banner')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda el: el.find_element_by_xpath(
                          iOS_elements.el_banner)).click()

        sc.logger.info('返回')
        try:
            WebDriverWait(
                sc.driver, 5, 1).until(lambda el: el.find_element_by_xpath(
                    '//XCUIElementTypeButton[@name="vivavideo com nav back n"]'
                )).click()
        except TimeoutException:
            sc.driver.find_element_by_xpath(
                '//XCUIElementTypeButton[@name="vivavideo back n"]').click()

        sc.logger.info('点击“主题”')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda x: x.find_element_by_name('主题')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载并使用主题')
        ba.material_used(iOS_elements.el_store_download1)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加"视频"')
        ba.gallery_clip_add('视频', 2)

        sc.logger.info('点击下一步进入预览页')
        ba.find_element_click('predicate', 10, iOS_elements.el_gallery_next)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('取消限制弹窗')
        try:
            WebDriverWait(sc.driver, 3,
                          1).until(lambda x: x.find_element_by_name(
                              iOS_elements.el_cancel)).click()
        except TimeoutException:
            sc.logger.info('限制弹窗已取消')

        sc.logger.info('返回创作页')
        ba.back_to_home()

        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('素材中心')).click()

        sc.logger.info('点击“主题”')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda x: x.find_element_by_name('主题')).click()

        sc.logger.info('删除下载的主题')
        ba.material_manager('主题', iOS_elements.el_store_del)
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('素材中心-主题测试完成')

    def test_template_02_filter(self):
        """素材中心-滤镜."""
        sc.logger.info('素材中心-滤镜')
        fun_name = 'test_template_filter'

        sc.logger.info('点击“滤镜”')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda x: x.find_element_by_name('滤镜')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载并使用滤镜')
        ba.material_used(iOS_elements.el_store_download2)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加"视频"')
        ba.gallery_clip_add('视频', 2)

        sc.logger.info('点击下一步进入预览页')
        ba.find_element_click('predicate', 10, iOS_elements.el_gallery_next)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“确认”')
        sc.driver.find_element_by_name(iOS_elements.el_confirm_btn).click()

        sc.logger.info('返回创作页')
        ba.back_to_home()

        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('素材中心')).click()

        sc.logger.info('点击“滤镜”')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda x: x.find_element_by_name('滤镜')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('删除下载的滤镜')
        ba.material_manager('滤镜', iOS_elements.el_store_del)
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('素材中心-滤镜测试完成')

    def test_template_03_fx(self):
        """素材中心-特效."""
        sc.logger.info('素材中心-特效')
        fun_name = 'test_template_effect'

        sc.logger.info('点击“特效”')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda x: x.find_element_by_name('特效')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下拉刷新')
        ba.refresh('down', 0.3, 500, 1)

        try:
            sc.logger.info('点击"使用"')
            WebDriverWait(
                sc.driver, 5,
                1).until(lambda x: x.find_element_by_name("使用")).click()
        except TimeoutException:
            sc.logger.info('该素材尚未下载,下载后再"使用"')
            time.sleep(1)
            fx_cover = '//*/XCUIElementTypeCollectionView/*/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeButton'
            WebDriverWait(
                sc.driver, 5,
                1).until(lambda x: x.find_element_by_xpath(fx_cover)).click()

            WebDriverWait(
                sc.driver, 5,
                1).until(lambda x: x.find_element_by_name('下载')).click()

            WebDriverWait(
                sc.driver, 10,
                1).until(lambda x: x.find_element_by_name("使用")).click()

        sc.logger.info('添加"视频"')
        ba.gallery_clip_add('视频', 2)

        sc.logger.info('点击下一步进入预览页')
        ba.find_element_click('predicate', 10, iOS_elements.el_gallery_next)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“确认”')
        ba.effect_add_confirm()

        sc.logger.info('返回创作页')
        ba.back_to_home()

        ba.home_first_click('素材中心')

        sc.logger.info('点击“特效”')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda x: x.find_element_by_name('特效')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('删除下载的特效')
        ba.material_manager('特效', iOS_elements.el_store_del)
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('素材中心-特效测试完成')

    def test_template_04_font(self):
        """素材中心-字体."""
        sc.logger.info('素材中心-字体')
        fun_name = 'test_template_font'

        ba.home_first_click('素材中心')

        sc.logger.info('点击“字体”')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda x: x.find_element_by_name('字体')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载并使用字体')
        ba.material_used(iOS_elements.el_store_download1)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加"视频"')
        ba.gallery_clip_add('视频', 2)

        sc.logger.info('点击下一步进入预览页')
        ba.find_element_click('predicate', 10, iOS_elements.el_gallery_next)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“确认”')
        ba.effect_add_confirm()

        sc.logger.info('返回创作页')
        ba.back_to_home()

        ba.home_first_click('素材中心')

        sc.logger.info('点击“字体”')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda x: x.find_element_by_name('字体')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('删除下载的字体')
        ba.material_manager('字体', iOS_elements.el_store_del)
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('素材中心-字体测试完成')

    def test_template_05_text(self):
        """素材中心-字幕."""
        sc.logger.info('素材中心-字幕')
        fun_name = 'test_template_text'

        sc.logger.info('向上滑动')
        el_text = sc.driver.find_element_by_name("字体")
        coord_x = el_text.location.get('x')
        coord_y = el_text.location.get('y')
        sc.swipe_by_ratio(coord_x, coord_y, 'up', 0.7, 500)

        sc.logger.info('点击“字幕”')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda x: x.find_element_by_name('字幕')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载并使用字幕')
        ba.material_used(iOS_elements.el_store_download1)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加"视频"')
        ba.gallery_clip_add('视频', 2)

        sc.logger.info('点击下一步进入预览页')
        ba.find_element_click('predicate', 10, iOS_elements.el_gallery_next)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“确认”')
        ba.effect_add_confirm()

        sc.logger.info('返回创作页')
        ba.back_to_home()

        ba.home_first_click('素材中心')

        sc.logger.info('向上滑动')
        el_text = sc.driver.find_element_by_name("字体")
        coord_x = el_text.location.get('x')
        coord_y = el_text.location.get('y')
        sc.swipe_by_ratio(coord_x, coord_y, 'up', 0.7, 500)

        sc.logger.info('点击“字幕”')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda x: x.find_element_by_name('字幕')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('删除下载的字幕')
        ba.material_manager('字幕', iOS_elements.el_store_del)
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('素材中心-字幕测试完成')

    def test_template_06_sticker(self):
        """素材中心-动画贴纸."""
        sc.logger.info('素材中心-动画贴纸')
        fun_name = 'test_template_sticker'

        sc.logger.info('向上滑动')
        el_text = sc.driver.find_element_by_name("字体")
        coord_x = el_text.location.get('x')
        coord_y = el_text.location.get('y')
        sc.swipe_by_ratio(coord_x, coord_y, 'up', 0.7, 500)

        sc.logger.info('点击“动画贴纸”')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('动画贴纸')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载并使用动画贴纸')
        ba.material_used(iOS_elements.el_store_download1)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加"视频"')
        ba.gallery_clip_add('视频', 2)

        sc.logger.info('点击下一步进入预览页')
        ba.find_element_click('predicate', 10, iOS_elements.el_gallery_next)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“确认”')
        ba.effect_add_confirm()

        sc.logger.info('返回创作页')
        ba.back_to_home()

        ba.home_first_click('素材中心')

        sc.logger.info('向上滑动')
        el_text = sc.driver.find_element_by_name("字体")
        coord_x = el_text.location.get('x')
        coord_y = el_text.location.get('y')
        sc.swipe_by_ratio(coord_x, coord_y, 'up', 0.7, 500)

        sc.logger.info('点击“动画贴纸”')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('动画贴纸')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('删除下载的动画贴纸')
        ba.material_manager('动画贴纸', iOS_elements.el_store_del)
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('素材中心-动画贴纸测试完成')

    def test_template_07_gif(self):
        """素材中心-GIF."""
        sc.logger.info('素材中心-GIF')
        fun_name = 'test_template_gif'

        sc.logger.info('向上滑动')
        el_text = sc.driver.find_element_by_name("字体")
        coord_x = el_text.location.get('x')
        coord_y = el_text.location.get('y')
        sc.swipe_by_ratio(coord_x, coord_y, 'up', 0.7, 500)

        sc.logger.info('点击“动画贴纸”')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('动画贴纸')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('切换到“GIF”')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name("GIF")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载并使用GIF贴纸')
        ba.material_used('下载')
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加"视频"')
        ba.gallery_clip_add('视频', 2)

        sc.logger.info('点击下一步进入预览页')
        ba.find_element_click('predicate', 10, iOS_elements.el_gallery_next)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“确认”')
        ba.effect_add_confirm()

        sc.logger.info('返回创作页')
        ba.back_to_home()

        ba.home_first_click('素材中心')

        sc.logger.info('向上滑动')
        el_text = sc.driver.find_element_by_name("字体")
        coord_x = el_text.location.get('x')
        coord_y = el_text.location.get('y')
        sc.swipe_by_ratio(coord_x, coord_y, 'up', 0.7, 500)

        sc.logger.info('点击“动画贴纸”')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('动画贴纸')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('切换到“GIF”')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name("GIF")).click()

        sc.logger.info('删除下载的GIF贴纸')
        ba.material_manager('GIF贴纸', '删除')
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('素材中心-GIF贴纸测试完成')

    def test_template_08_transition(self):
        """素材中心-转场."""
        sc.logger.info('素材中心-转场')
        fun_name = 'test_template_transition'
        start_x = self.width // 2
        start_y = self.height // 8
        start_bottom = self.height - start_y

        sc.logger.info('向上滑动')
        el_text = sc.driver.find_element_by_name("字体")
        coord_x = el_text.location.get('x')
        coord_y = el_text.location.get('y')
        sc.swipe_by_ratio(coord_x, coord_y, 'up', 0.7, 500)

        sc.logger.info('点击“转场”')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda x: x.find_element_by_name('转场')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('向上滑动直到最底部')
        while True:
            try:
                sc.driver.find_element_by_name("没有更多了…").click()
                break
            except NoSuchElementException:
                sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.7, 300)

        sc.logger.info('下载并使用转场')
        ba.material_used(iOS_elements.el_store_download1)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加"视频"')
        ba.gallery_clip_add('视频', 2)

        sc.logger.info('点击下一步进入预览页')
        ba.find_element_click('predicate', 10, iOS_elements.el_gallery_next)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“确认”')
        sc.driver.find_element_by_name(iOS_elements.el_confirm_btn).click()

        sc.logger.info('返回创作页')
        ba.back_to_home()

        ba.home_first_click('素材中心')

        sc.logger.info('向上滑动')
        el_text = sc.driver.find_element_by_name("字体")
        coord_x = el_text.location.get('x')
        coord_y = el_text.location.get('y')
        sc.swipe_by_ratio(coord_x, coord_y, 'up', 0.7, 500)

        sc.logger.info('点击“转场”')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda x: x.find_element_by_name('转场')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('删除下载的转场')
        ba.material_manager('转场', iOS_elements.el_store_del)
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('素材中心-动画贴纸测试完成')
Пример #28
0
class TestPreviewMusic(TestCase):
    """预览页面的music测试类."""

    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    @classmethod
    def setUpClass(cls):
        sc.driver.launch_app()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        time.sleep(3)
        sc.driver.close_app()

    def test_music_01_add(self):
        """预览页-配乐."""
        sc.logger.info('配乐操作相关')
        fun_name = 'test_music_add'

        sc.logger.info('打开一个草稿视频')
        ba.home_first_click('更多草稿')

        sc.logger.info('点击草稿封面')
        ba.open_draft(iOS_elements.el_studio_draft)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“主题·配乐”')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name("主题·配乐")).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('配乐相关操作')
        ba.preview_music()
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('预览页-配乐测试完成')

    def test_music_02_recommend(self):
        """音乐库-推荐音乐下载."""
        sc.logger.info('音乐库-推荐音乐下载')
        fun_name = 'test_preview_recommend'

        sc.logger.info('点击“添加配乐”按钮')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name("添加配乐")).click()

        # 推荐音乐下载
        sc.logger.info('向上滑动')
        start_x = self.width // 2
        start_y = self.height // 8
        start_bottom = self.height - start_y
        for i in range(2):
            sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.7, 300)

        sc.logger.info('下载音乐')
        sc.driver.find_element_by_xpath(iOS_elements.el_mus_download).click()
        # music_list = sc.driver.find_elements_by_name(iOS_elements.el_mus_download)
        # if len(music_list) >= 3:
        #     music_list = music_list[:3]
        # for el_music in music_list:
        #     el_music.click()

        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('音乐库-推荐音乐下载测试完成')

    def test_music_03_other(self):
        """音乐库-其他分类音乐下载."""
        sc.logger.info('音乐库-其他分类音乐下载')
        fun_name = 'test_preview_other'

        # 切换到其他分类
        sc.logger.info('点击“中国风”分类')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('中国风')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载音乐')
        sc.driver.find_element_by_xpath(iOS_elements.el_mus_download).click()
        # music_list = sc.driver.find_elements_by_name(iOS_elements.el_mus_download)
        # if len(music_list) >= 3:
        #     music_list = music_list[:3]
        # for el_music in music_list:
        #     el_music.click()

        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('音乐库-其他分类音乐下载测试完成')

    def test_music_04_use(self):
        """音乐库-使用已下载音乐."""
        sc.logger.info('音乐库-使用已下载音乐')
        fun_name = 'test_preview_use'

        sc.logger.info('点击“已下载”tab')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('已下载')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加音乐')
        try:
            WebDriverWait(sc.driver, 10,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_mus_title1)).click()
        except:
            WebDriverWait(sc.driver, 10,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_mus_title2)).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“添加”按钮')
        sc.driver.find_element_by_name('添加').click()

        sc.logger.info('暂停播放')
        WebDriverWait(sc.driver, 10, 1).until(
            lambda x: x.find_element_by_name(iOS_elements.btn_stop)).click()

        sc.logger.info('删除配乐')
        WebDriverWait(sc.driver, 10, 1).until(lambda x: x.find_element_by_name(
            iOS_elements.btn_music_del)).click()

        sc.logger.info('点击添加配乐')
        WebDriverWait(
            sc.driver, 3,
            1).until(lambda x: x.find_element_by_name('点击添加配乐')).click()

        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('音乐库-使用已下载音乐测试完成')

    def test_music_05_delete(self):
        """音乐库-删除已下载音乐."""
        sc.logger.info('音乐库-删除已下载音乐')
        fun_name = 'test_preview_delete'

        sc.logger.info('点击删除按钮')
        WebDriverWait(sc.driver, 5, 1).until(
            lambda x: x.find_element_by_name(iOS_elements.el_mus_del)).click()

        sc.logger.info('选择一首已下载音乐')
        el_check = sc.driver.find_elements_by_name(iOS_elements.el_mus_cho)
        el_check[0].click()

        sc.logger.info('再次点击删除按钮')
        WebDriverWait(sc.driver, 5, 1).until(lambda x: x.find_element_by_name(
            iOS_elements.el_mus_del2)).click()
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('音乐库-删除已下载音乐测试完成')

    def test_music_06_local(self):
        """音乐库-使用本地音乐."""
        sc.logger.info('音乐库-使用本地音乐')
        fun_name = 'test_preview_local'

        WebDriverWait(sc.driver, 5,
                      1).until(lambda x: x.find_element_by_name('本地')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加音乐')
        try:
            WebDriverWait(sc.driver, 5,
                          1).until(lambda x: x.find_element_by_xpath(
                              iOS_elements.el_mus_title1)).click()
        except TimeoutException:
            sc.logger.info('本地音乐不存在!')
            return True

        sc.logger.info('点击“添加”按钮')
        sc.driver.find_element_by_name('添加').click()

        sc.logger.info('暂停播放')
        WebDriverWait(sc.driver, 10, 1).until(
            lambda x: x.find_element_by_name(iOS_elements.btn_stop)).click()

        sc.logger.info('确定')
        WebDriverWait(sc.driver, 10,
                      1).until(lambda x: x.find_element_by_accessibility_id(
                          iOS_elements.btn_music_confirm)).click()

        sc.logger.info('点击“存草稿”按钮')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name("存草稿")).click()
        sc.logger.info('音乐库-使用本地音乐测试完成')