コード例 #1
0
ファイル: test_album_mv.py プロジェクト: loveiset/UItest
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_time(self):
        """预览页-时长."""
        sc.logger.info('预览页-时长')
        fun_name = 'test_preview_time'

        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)

        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('预览页-时长测试完成')
コード例 #2
0
ファイル: test_filter.py プロジェクト: loveiset/UItest
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'

        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('点击"下载更多"')
        btn_more = '下载更多'
        ba.more_download(btn_more)

        sc.logger.info('使用滤镜')
        ba.material_used(iOS_elements.el_store_download2)

        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, 5,
            1).until(lambda el: el.find_element_by_name("存草稿")).click()
        sc.logger.info('剪辑-滤镜测试完成')
コード例 #3
0
ファイル: test_transition.py プロジェクト: loveiset/UItest
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(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('下载并使用转场')
        ba.clip_transition()

        sc.logger.info('点击“存草稿”按钮')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name("存草稿")).click()
        sc.logger.info('剪辑-转场-添加测试完成')
コード例 #4
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_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('使用“主题”')
        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('点击“存草稿”按钮')
        WebDriverWait(
            sc.driver, 5,
            1).until(lambda el: el.find_element_by_name("存草稿")).click()
        sc.logger.info('预览页-主题测试完成')
コード例 #5
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('点击“视频剪辑”按钮')
        WebDriverWait(sc.driver, 3, 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('切换到图片')
        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 el: el.find_element_by_name("存草稿")).click()
        sc.logger.info('创建一个草稿视频完成')
コード例 #6
0
ファイル: test_clip.py プロジェクト: loveiset/UItest
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('剪辑-镜头编辑-功能遍历完成')
コード例 #7
0
class TestCreationExport(TestCase):
    """
    创作页面内导出视频相关的测试类.
    使用已购买会员账号登录
    """

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

    @staticmethod
    def test_export_01_create():
        """导出-创建视频."""
        sc.logger.info('导出-创建视频')

        time.sleep(5)
        sc.logger.info('点击创作中心主按钮')
        try:
            sc.driver.find_element_by_accessibility_id("camerta_n").click()
        except NoSuchElementException:
            sc.driver.find_element_by_accessibility_id("camerta_f").click()

        sc.logger.info('点击"高清拍摄"按钮')
        try:
            sc.driver.find_element_by_name("高清拍摄").click()
        except NoSuchElementException:
            sc.logger.info('当前版本为测试版,点击默认"拍摄"按钮')
            sc.driver.find_element_by_name("拍摄").click()

        # 点拍
        sc.logger.info('开始录制')
        el_capture = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeOther[3]/XCUIElementTypeOther/XCUIElementTypeOther[1]"
        )
        el_capture.click()
        time.sleep(10)

        sc.logger.info('录制10s后点击录制按钮停止录制')
        el_capture.click()

        sc.logger.info('点击确认按钮进入预览页')
        sc.driver.find_element_by_name(
            "vivavideo camera tool icon nex").click()

        sc.logger.info('点击“存草稿”按钮')
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('点击左上角返回按钮退回创作中心')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

    def test_export_02_first(self):
        """导出-保存到相册-480P."""
        sc.logger.info('导出-保存到相册-480P-首次导出')
        fun_name = 'test_export_first'

        time.sleep(1)
        sc.logger.info('进入我的工作室')
        sc.driver.find_element_by_name("更多草稿").click()
        time.sleep(0.5)

        sc.logger.info('保存并上传')
        el_publish = sc.driver.find_element_by_name("保存/上传")
        el_publish.click()
        time.sleep(0.5)

        sc.logger.info('点击屏幕消除软键盘')
        actions = TouchAction(sc.driver)
        actions.tap(None, 500, 500, 1).release().perform()

        sc.logger.info('点击“保存到相册”')
        sc.driver.find_element_by_name('保存到相册').click()
        time.sleep(0.5)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“清晰 480P”')
        try:
            sc.driver.find_element_by_name("清晰 480P").click()
            time.sleep(0.5)
            sc.capture_screen(fun_name, self.img_path)
        except NoSuchElementException:
            sc.logger.info('该视频已导出,需要确认是否重新导出')
            sc.capture_screen(fun_name, self.img_path)
            sc.driver.find_element_by_name("重新导出").click()
            time.sleep(0.5)
            sc.driver.find_element_by_name("清晰 480P").click()
            sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('开始导出')
        try:
            WebDriverWait(sc.driver, 60).until(
                lambda V_exprot: V_exprot.find_element_by_name('我的工作室'))
            sc.capture_screen(fun_name, self.img_path)

            sc.logger.info('点击左上角返回按钮退回创作中心')
            time.sleep(0.5)
            sc.driver.find_element_by_name("vivavideo com nav back n").click()
        except NoSuchElementException:
            sc.driver.find_element_by_name("感觉如何")
            sc.capture_screen(fun_name, self.img_path)
            sc.driver.find_element_by_name("稍后再说").click()

            sc.logger.info('点击左上角返回按钮退回创作中心')
            time.sleep(0.5)
            sc.driver.find_element_by_name("vivavideo com nav back n").click()
        except Exception as e:
            sc.logger.error('导出失败', e)
            return False

    def test_export_03_second(self):
        """导出-保存到相册-720P."""
        sc.logger.info('导出-保存到相册-720P-二次导出')
        fun_name = 'test_export_second'

        sc.logger.info('进入我的工作室')
        sc.driver.find_element_by_name("更多草稿").click()
        time.sleep(0.5)

        sc.logger.info('保存并上传')
        el_publish = sc.driver.find_element_by_name("保存/上传")
        el_publish.click()
        time.sleep(0.5)

        sc.logger.info('点击屏幕消除软键盘')
        actions = TouchAction(sc.driver)
        actions.tap(None, 500, 500, 1).release().perform()

        sc.logger.info('点击“保存到相册”')
        sc.driver.find_element_by_name('保存到相册').click()
        time.sleep(0.5)

        sc.logger.info('点击“高清 720P”')
        try:
            sc.driver.find_element_by_name("高清 720P").click()
            time.sleep(0.5)
            sc.capture_screen(fun_name, self.img_path)
        except NoSuchElementException:
            sc.logger.info('该视频已导出,需要确认是否重新导出')
            sc.capture_screen(fun_name, self.img_path)
            sc.driver.find_element_by_name("重新导出").click()
            time.sleep(0.5)
            sc.driver.find_element_by_name("高清 720P").click()
            sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('开始导出')
        try:
            WebDriverWait(sc.driver, 60).until(
                lambda V_exprot: V_exprot.find_element_by_name('我的工作室'))

            sc.logger.info('点击左上角返回按钮退回创作中心')
            time.sleep(0.5)
            sc.driver.find_element_by_name("vivavideo com nav back n").click()
        except NoSuchElementException:
            sc.driver.find_element_by_name("感觉如何")
            sc.capture_screen(fun_name, self.img_path)
            sc.driver.find_element_by_name("稍后再说").click()

            sc.logger.info('点击左上角返回按钮退回创作中心')
            time.sleep(0.5)
            sc.driver.find_element_by_name("vivavideo com nav back n").click()
        except Exception as e:
            sc.logger.error('导出失败', e)
            return False

    def test_export_04_third(self):
        """导出-保存到相册-1080P."""
        sc.logger.info('导出-保存到相册-1080P')
        fun_name = 'test_export_third'

        sc.logger.info('进入我的工作室')
        sc.driver.find_element_by_name("更多草稿").click()
        time.sleep(0.5)

        sc.logger.info('保存并上传')
        el_publish = sc.driver.find_element_by_name("保存/上传")
        el_publish.click()
        time.sleep(0.5)

        sc.logger.info('点击屏幕消除软键盘')
        actions = TouchAction(sc.driver)
        actions.tap(None, 500, 500, 1).release().perform()

        sc.logger.info('点击“保存到相册”')
        sc.driver.find_element_by_name('保存到相册').click()
        time.sleep(0.5)

        sc.logger.info('确认视频是否已导出')
        try:
            sc.driver.find_element_by_name("重新导出").click()
            time.sleep(0.5)
        except NoSuchElementException:
            sc.logger.info('该视频未导出过,直接选择要导出的尺寸')

        sc.logger.info('点击“超清 1080P”')
        try:
            sc.driver.find_element_by_name("超清 1080P").click()
            time.sleep(0.5)
            sc.capture_screen(fun_name, self.img_path)
        except NoSuchElementException:
            sc.logger.info('当前设备不支持1080P导出,点击屏幕消除选项框')
            actions = TouchAction(sc.driver)
            actions.tap(None, 500, 300, 1).release().perform()

            sc.logger.info('点击“存草稿”按钮')
            sc.driver.find_element_by_name("存草稿").click()

            sc.logger.info('点击左上角返回按钮退回创作中心')
            time.sleep(1)
            sc.driver.find_element_by_name("vivavideo com nav back n").click()
            return True

        sc.logger.info('开始导出')
        try:
            WebDriverWait(sc.driver, 60).until(
                lambda V_exprot: V_exprot.find_element_by_name('我的工作室'))

            sc.logger.info('点击左上角返回按钮退回创作中心')
            time.sleep(0.5)
            sc.driver.find_element_by_name("vivavideo com nav back n").click()
        except NoSuchElementException:
            sc.driver.find_element_by_name("感觉如何")
            sc.capture_screen(fun_name, self.img_path)
            sc.driver.find_element_by_name("稍后再说").click()

            sc.logger.info('点击左上角返回按钮退回创作中心')
            time.sleep(0.5)
            sc.driver.find_element_by_name("vivavideo com nav back n").click()
        except Exception as e:
            sc.logger.error('导出失败', e)
            return False

    def test_export_05_gif(self):
        """导出-保存到相册-GIF."""
        sc.logger.info('导出-保存到相册-GIF')
        fun_name = 'test_export_gif'

        sc.logger.info('进入我的工作室')
        sc.driver.find_element_by_name("更多草稿").click()
        time.sleep(0.5)

        sc.logger.info('保存并上传')
        el_publish = sc.driver.find_element_by_name("保存/上传")
        el_publish.click()
        time.sleep(0.5)

        sc.logger.info('点击屏幕消除软键盘')
        actions = TouchAction(sc.driver)
        actions.tap(None, 500, 500, 1).release().perform()

        sc.logger.info('点击“保存到相册”')
        sc.driver.find_element_by_name('保存到相册').click()
        time.sleep(0.5)

        sc.logger.info('确认视频是否已导出')
        try:
            sc.driver.find_element_by_name("重新导出").click()
            time.sleep(0.5)
        except NoSuchElementException:
            sc.logger.info('该视频未导出过,直接选择要导出的尺寸')

        sc.logger.info('点击“GIF”')
        try:
            sc.driver.find_element_by_name("GIF").click()
            time.sleep(0.5)
            sc.capture_screen(fun_name, self.img_path)
        except NoSuchElementException:
            sc.logger.info('当前设备不支持GIF导出,点击屏幕消除选项框')
            actions = TouchAction(sc.driver)
            actions.tap(None, 500, 300, 1).release().perform()

            sc.logger.info('点击“存草稿”按钮')
            sc.driver.find_element_by_name("存草稿").click()

            sc.logger.info('点击左上角返回按钮退回创作中心')
            time.sleep(1)
            sc.driver.find_element_by_name("vivavideo com nav back n").click()
            return True

        sc.logger.info('选择GIF导出尺寸')
        sc.driver.find_element_by_xpath(
            "(//XCUIElementTypeImage[@name='vivavideo_gif_icon_arrow_n'])[1]"
        ).click()
        sc.capture_screen(fun_name, self.img_path)
        sc.driver.find_element_by_name("320P").click()
        time.sleep(0.5)

        sc.logger.info('选择GIF导出帧率')
        sc.driver.find_element_by_xpath(
            "(//XCUIElementTypeImage[@name='vivavideo_gif_icon_arrow_n'])[2]"
        ).click()
        sc.capture_screen(fun_name, self.img_path)
        sc.driver.find_element_by_name("15F/s").click()
        time.sleep(0.5)

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

        sc.logger.info('开始导出')
        try:
            WebDriverWait(sc.driver, 60).until(
                lambda V_exprot: V_exprot.find_element_by_name('我的工作室'))

            sc.logger.info('点击左上角返回按钮退回创作中心')
            time.sleep(0.5)
            sc.driver.find_element_by_name("vivavideo com nav back n").click()
        except NoSuchElementException:
            sc.driver.find_element_by_name("感觉如何")
            sc.capture_screen(fun_name, self.img_path)
            sc.driver.find_element_by_name("稍后再说").click()

            sc.logger.info('点击左上角返回按钮退回创作中心')
            time.sleep(0.5)
            sc.driver.find_element_by_name("vivavideo com nav back n").click()
        except Exception as e:
            sc.logger.error('导出失败', e)
            return False

    def test_export_06_giveup(self):
        """导出-保存到相册-导出取消."""
        sc.logger.info('导出-保存到相册-导出取消')
        fun_name = 'test_export_giveup'

        sc.logger.info('进入我的工作室')
        sc.driver.find_element_by_name("更多草稿").click()
        time.sleep(0.5)

        sc.logger.info('保存并上传')
        el_publish = sc.driver.find_element_by_name("保存/上传")
        el_publish.click()
        time.sleep(0.5)

        sc.logger.info('点击屏幕消除软键盘')
        actions = TouchAction(sc.driver)
        actions.tap(None, 500, 500, 1).release().perform()

        sc.logger.info('点击“保存到相册”')
        sc.driver.find_element_by_name('保存到相册').click()
        time.sleep(0.5)

        sc.logger.info('确认视频是否已导出')
        try:
            sc.driver.find_element_by_name("重新导出").click()
            time.sleep(0.5)
        except NoSuchElementException:
            sc.logger.info('该视频未导出过,直接选择要导出的尺寸')

        sc.logger.info('点击“高清 720P”')
        sc.driver.find_element_by_name("高清 720P").click()
        time.sleep(1)

        sc.logger.info('放弃导出')
        sc.driver.find_element_by_name('icon exit close n').click()
        sc.capture_screen(fun_name, self.img_path)
        sc.driver.find_element_by_name("不等了").click()

        sc.logger.info('点击“存草稿”按钮')
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('点击左上角返回按钮退回创作中心')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()
コード例 #8
0
ファイル: test_cancel.py プロジェクト: loveiset/UItest
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, 3, 1).until(lambda x: x.find_element_by_xpath(
            iOS_elements.el_home_camera)).click()

        # 点拍
        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, 1).until(lambda x: x.find_element_by_xpath(
            iOS_elements.el_home_camera)).click()

        # 点拍
        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()

        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('拍摄-拍摄页保存测试完成')
コード例 #9
0
ファイル: test_login.py プロジェクト: hicheng/UItest
class TestUserLogin(TestCase):
    """用户空间登录测试类."""

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

    def test_login_01_start(self):
        """测试登录页面未登录时的初始状态.

        1.无法获取到启动页的"跳过"控件,所以暂时先手动跳过启动页再进行登录测试,后续再优化
        """
        sc.logger.info('登录页面初始状态检查测试开始')
        fun_name = 'test_login_origin'

        time.sleep(5)
        sc.logger.info('授权小影发送通知')
        try:
            sc.driver.find_element_by_name('允许').click()
        except NoSuchElementException:
            sc.logger.info('已授权小影发送通知')

        sc.logger.info('关闭活动弹窗')
        time.sleep(2)
        try:
            sc.driver.find_element_by_name(
                "vivavideo purchase close n").click()
        except NoSuchElementException:
            sc.logger.info('当前无或者已关闭活动弹窗')

        sc.logger.info('切换到"我"')
        btn_me = "//*/XCUIElementTypeTabBar/XCUIElementTypeButton[3]"
        sc.driver.find_element_by_xpath(btn_me).click()
        time.sleep(.500)
        sc.capture_screen(fun_name, self.img_path)

        assert btn_me is not None

    @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登录页面')

        sc.logger.info('点击"QQ账号"')
        sc.driver.find_element_by_name('QQ帐号').click()

        try:
            try:
                sc.driver.find_element_by_name('授权并登录').click()
            except NoSuchElementException:
                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)
            time.sleep(1)

            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,
                30).until(lambda el_settings: el_settings.find_element_by_name(
                    "vivavideo setting p"))
            sc.logger.info('授权登录成功')
            time.sleep(2)
            try:
                sc.driver.find_element_by_name("icon dj close").click()
            except NoSuchElementException:
                sc.logger.info('非首次登录,已跳过领取特权')
            except Exception as e:
                sc.logger.info('关闭"领取特权"异常', e)
        except TimeoutError as t:
            sc.logger.info('QQ授权登录超时', t)

        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_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()
            time.sleep(2)
            username = '******'
            passwd = 'qa123456'
            login_res = TestUserLogin.login_method('QQ', username, passwd)

        assert login_res is not False
コード例 #10
0
ファイル: test_settings.py プロジェクト: hicheng/UItest
class Settings(TestCase):
    """设置页面测试类."""
    # 获取屏幕尺寸
    width, height = sc.get_size()
    img_path = sc.path_lists[0]

    def test_settings_01_net(self):
        """设置-网络设置"""
        fun_name = 'test_settings_net'

        time.sleep(5)
        sc.logger.info("进入设置页面")
        sc.driver.find_element_by_name("我").click()  # 个人页
        sc.driver.find_element_by_name("vivavideo setting p").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info("网络设置")
        sc.driver.find_element_by_name("只在WIFI网络上传/下载视频").click()

        sc.logger.info("自动播放设置")
        sc.driver.find_element_by_name("自动播放设置").click()
        sc.driver.find_element_by_name("不自动播放").click()
        sc.driver.find_element_by_name("仅在wifi环境下").click()
        sc.driver.find_element_by_name("在wifi和移动网络环境下").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info("返回设置页面")
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

        sc.logger.info("接收通知推送")
        sc.driver.find_element_by_name("接收通知推送").click()
        el_push_message = sc.driver.find_elements_by_ios_predicate(
            "type == 'XCUIElementTypeImage'")
        for el in el_push_message:
            el.click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info("返回设置页面")
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

    def test_settings_02_privacy(self):
        """设置-隐私设置"""
        fun_name = 'test_settings_privacy'

        sc.logger.info("设置私信权限")
        sc.driver.find_element_by_name("私信权限").click()
        sc.driver.find_element_by_name("所有人").click()
        sc.driver.find_element_by_name("我关注的人").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info("返回设置页面")
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

        sc.logger.info("查看黑名单")
        sc.driver.find_element_by_name("黑名单").click()
        time.sleep(0.5)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info("返回设置页面")
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

        sc.logger.info("隐私账号设置")
        try:
            sc.driver.find_element_by_xpath(
                "//*/XCUIElementTypeOther[3]/XCUIElementTypeImage").click()
        except NoSuchElementException:
            sc.logger.info("隐私账号设置已开启")
        sc.capture_screen(fun_name, self.img_path)

    def test_settings_03_feedback(self):
        """设置-意见反馈"""
        fun_name = 'test_settings_feedback'

        sc.logger.info("意见反馈")
        # width = sp.get_window_size()['width']
        # heightt = sp.get_window_size()['heightt']
        # sp.swipe(width / 2, heightt * 9 / 10, width / 2, heightt * 1 / 10, 500)

        start_x = self.width // 2
        start_bottom = self.height - self.height // 10
        sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.8, 500)

        sc.logger.info("进入反馈页面")
        sc.driver.find_element_by_name("意见反馈").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info("新建反馈")
        sc.driver.find_element_by_name("+ 新建反馈").click()
        time.sleep(2)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info("填写问题")
        el_question = sc.driver.find_element_by_ios_predicate(
            "type == 'XCUIElementTypeTextView'")
        el_question.clear()
        el_question.send_keys("just for ios test")
        time.sleep(1)
        try:
            sc.driver.find_element_by_xpath(
                "//XCUIElementTypeButton[@name='Done']").click()
        except NoSuchElementException:
            sc.logger.info("当前键盘为中文键盘")
            sc.driver.find_element_by_xpath("完成").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info("选择问题分类")
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo_common_pulldown_n").click()
        sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.2, 500)
        sc.driver.find_element_by_xpath(
            "//XCUIElementTypeButton[@name='完成']").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info("提供截图")
        sc.driver.find_element_by_xpath(
            "//XCUIElementTypeImage[@name='icon_add_nrm']").click()
        time.sleep(1)
        sc.driver.find_element_by_name("取消").click()

        sc.logger.info("输入联系方式")
        el_contact = sc.driver.find_elements_by_ios_predicate(
            "type == 'XCUIElementTypeTextField'")
        for contact in el_contact:
            if contact.text == u'QQ':
                contact.send_keys("245603638")
                break

        for contact in el_contact:
            if contact.text == u'手机号':
                contact.send_keys("15857154810")
                break

        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info("提交反馈")
        sc.driver.find_element_by_xpath(
            "//XCUIElementTypeButton[@name='Done']").click()
        sc.driver.find_element_by_xpath(
            "//XCUIElementTypeButton[@name='提交']").click()
        sc.capture_screen(fun_name, self.img_path)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

    def test_settings_04_other(self):
        """设置-其他设置"""
        fun_name = 'test_settings_other'

        sc.logger.info("其他设置")
        start_x = self.width // 2
        start_bottom = self.height - self.height // 10
        sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.8, 500)

        sc.logger.info('关于小影')
        sc.driver.find_element_by_name("关于小影").click()
        sc.driver.find_element_by_name(
            "vivavideo aboutxiaoying back n").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('赏个好评')
        sc.driver.find_element_by_name("赏个好评,支持我们").click()
        time.sleep(2)
        sc.capture_screen(fun_name, self.img_path)
        try:
            sc.driver.find_element_by_name("以后").click()
        except NoSuchElementException:
            sc.logger.info("非正式版本,无法跳转苹果商店")

        sc.logger.info('成为VIP会员')
        sc.driver.find_element_by_name("成为VIP会员").click()
        sc.capture_screen(fun_name, self.img_path)
        sc.driver.find_element_by_name("icon close n").click()

        sc.logger.info('恢复购买')
        sc.driver.find_element_by_name("恢复购买").click()
        sc.capture_screen(fun_name, self.img_path)
        sc.driver.find_element_by_name("取消").click()

        # sc.logger.info('推荐小影给好友')
        # sc.driver.find_element_by_name("推荐小影给好友").click()
        # sc.capture_screen(fun_name, self.img_path)
        # sc.driver.find_element_by_xpath("//XCUIElementTypeButton[@name='xiaoying sns icon small qq nor']").click()
        # time.sleep(2)
        # sc.driver.find_element_by_name("我的电脑").click()
        # sc.driver.find_element_by_name("发送").click()
        # time.sleep(2)
        # sc.driver.find_element_by_name("返回小影").click()

        sc.logger.info('清除缓存')
        sc.driver.find_element_by_name("清除缓存").click()
        sc.driver.find_element_by_name("清除缓存").click()

        sc.logger.info('退出设置页面')
        sc.driver.find_element_by_name("vivavideo com nav back n").click()
コード例 #11
0
ファイル: test_sticker.py プロジェクト: hicheng/UItest
class TestEditSticker(TestCase):
    """动画贴纸的测试类."""

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

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

        time.sleep(5)
        sc.logger.info('点击首页第一个草稿封面')
        el_draft = sc.driver.find_element_by_xpath("//*/XCUIElementTypeOther[2]/*/XCUIElementTypeButton")
        el_draft.click()

        sc.logger.info('点击"剪辑"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("剪辑").click()

        sc.logger.info('向左滑动')
        el_collage = sc.driver.find_element_by_name("画中画")
        coord_x = el_collage.location.get('x')
        coord_y = el_collage.location.get('y')
        sc.swipe_by_ratio(coord_x, coord_y, 'left', 0.6, 800)  # 从转场向左滑动

        sc.logger.info('点击"动画贴纸"')
        sc.driver.find_element_by_name("动画贴纸").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"添加"按钮')
        sc.driver.find_element_by_name("vivavideo tool sticker add n").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('选择一个"贴纸"添加')
        el_sticker = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeCollectionView[2]/*/XCUIElementTypeOther/XCUIElementTypeImage")
        el_sticker.click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('镜像"贴纸"')
        sc.driver.find_element_by_accessibility_id(
            "XiaoYingResource.bundle/vivavideo_tool_subtitle_flip_n").click()

        sc.logger.info('切换"贴纸"分类')
        el_sticker_type = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeCollectionView[1]/*/XCUIElementTypeOther/XCUIElementTypeImage")
        el_sticker_type.click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载该分类"贴纸"')
        try:
            sc.driver.find_element_by_name("免费下载").click()
        except NoSuchElementException:
            sc.logger.info('该分类"贴纸"已下载')

        sc.logger.info('点击GIF图标')
        sc.driver.find_element_by_name("GIF").click()
        time.sleep(3)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('返回贴纸添加页面')
        sc.driver.find_element_by_name('vivavideo com nav back n').click()

        sc.logger.info('点击下载更多')
        sc.driver.find_element_by_name("xiaoying itembar down more").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('返回贴纸添加页面')
        sc.driver.find_element_by_name('vivavideo com nav back n').click()

        sc.logger.info('点击右上角保存')
        el_ok_btn = sc.driver.find_element_by_name("xiaoying com ok")
        for i in range(2):
            el_ok_btn.click()
            sc.capture_screen(fun_name,self.img_path)

        sc.logger.info('点击“存草稿”按钮')
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('返回创作中心主界面')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

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

        time.sleep(1)
        sc.logger.info('点击首页第一个草稿封面')
        el_draft = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeOther[2]/*/XCUIElementTypeButton")
        el_draft.click()

        sc.logger.info('点击"剪辑"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("剪辑").click()

        sc.logger.info('向左滑动')
        el_collage = sc.driver.find_element_by_name("画中画")
        coord_x = el_collage.location.get('x')
        coord_y = el_collage.location.get('y')
        sc.swipe_by_ratio(coord_x, coord_y, 'left', 0.6, 800)  # 从转场向左滑动

        sc.logger.info('点击"动画贴纸"')
        sc.driver.find_element_by_name("动画贴纸").click()

        sc.logger.info('点击"添加"按钮')
        sc.driver.find_element_by_name("vivavideo tool sticker add n").click()

        sc.logger.info('点击右上角保存')
        sc.driver.find_element_by_name("xiaoying com ok").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('放弃编辑')
        sc.driver.find_element_by_name("xiaoying com cancel").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('点击“存草稿”按钮')
        time.sleep(3)
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('返回创作中心主界面')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()
コード例 #12
0
ファイル: test_music.py プロジェクト: loveiset/UItest
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_shot(self):
        """拍摄-音乐视频(3:4)."""
        sc.logger.info('拍摄-音乐视频(3:4)')
        fun_name = 'test_music_shot'

        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('下载音乐')
        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)

        time.sleep(10)

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

        sc.logger.info('点击“添加”按钮')
        time.sleep(5)
        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_02_change(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('点击一首已下载音频试听')
        WebDriverWait(sc.driver, 10,
                      1).until(lambda x: x.find_element_by_xpath(
                          iOS_elements.el_mus_play)).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_title)).click()

        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_xpath(
                          iOS_elements.el_mus_play)).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_03_redo(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('点击一首已下载音频试听')
        WebDriverWait(sc.driver, 10,
                      1).until(lambda x: x.find_element_by_xpath(
                          iOS_elements.el_mus_play)).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_title)).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('拍摄-音乐视频-直接重录完成')
コード例 #13
0
ファイル: test_sound.py プロジェクト: hicheng/UItest
class TestEditSound(TestCase):
    """配音的基本操作测试类."""

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

    def test_edit_sound_01_add(self):
        """剪辑-配音-添加."""
        sc.logger.info('剪辑-配音-添加')
        fun_name = 'test_edit_sound_add'

        time.sleep(5)
        sc.logger.info('点击创作中心主按钮')
        try:
            sc.driver.find_element_by_xpath(
                "//XCUIElementTypeImage[@name='camerta_n']").click()
        except NoSuchElementException:
            sc.driver.find_element_by_xpath(
                "//XCUIElementTypeImage[@name='camerta_f']").click()

        sc.logger.info('点击首页第一个草稿封面')
        el_draft = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeOther[2]/*/XCUIElementTypeButton")
        el_draft.click()

        sc.logger.info('点击"剪辑"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("剪辑").click()

        sc.logger.info('向左滑动')
        start_x = self.width - self.width // 10
        start_bottom = self.height - self.height // 5
        sc.swipe_by_ratio(start_x, start_bottom, 'left', 0.8, 800)

        sc.logger.info('点击"配音"')
        try:
            sc.driver.find_element_by_name("配音").click()
        except NoSuchElementException:
            sc.logger.info('未找到"配音"按钮,再向左滑动')
            sc.swipe_by_ratio(start_x, start_bottom, 'left', 0.8, 800)
            sc.driver.find_element_by_name("配音").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击右侧预置"配音"图标')
        sc.driver.find_element_by_name("vivavideo tool sound list n").click()

        sc.logger.info('选择一个"音频"试听')
        el_sound_name = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeTable/*/XCUIElementTypeButton[2]")
        el_sound_name.click()

        sc.logger.info('添加')
        sc.driver.find_element_by_name("添加").click()

    def test_edit_sound_02_record(self):
        """剪辑-配音-录音."""
        sc.logger.info('剪辑-配音-录音')
        fun_name = 'test_edit_sound_record'

        try:
            WebDriverWait(
                sc.driver,
                20).until(lambda el_record: el_record.find_element_by_name(
                    "vivavideo tool sound start n"))
            el_record = sc.driver.find_element_by_name(
                "vivavideo tool sound start n")

            sc.logger.info("授权小影访问麦克风")
            try:
                el_record.click()
                sc.driver.find_element_by_name("好").click()  # 授权访问麦克风
                time.sleep(1)
            except NoSuchElementException:
                sc.logger.info("已授权")

            sc.logger.info('长按录制10s音频')
            actions = TouchAction(sc.driver)
            actions.long_press(el_record, None, None,
                               10000).release().perform()
            sc.capture_screen(fun_name, self.img_path)
        except NoSuchElementException:
            sc.logger.info('添加的配音音频时长超出20s,可选择时长小的音频或者修改等待时长')

        sc.logger.info('点击“右上角”保存')
        sc.driver.find_element_by_name("xiaoying com ok").click()

        sc.logger.info('存草稿并返回创作页首页')
        sc.driver.find_element_by_name("存草稿").click()
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

    def test_edit_sound_03_del(self):
        """剪辑-配音-删除."""
        sc.logger.info('剪辑-配音-删除')
        fun_name = 'test_edit_sound_del'

        time.sleep(1)
        sc.logger.info('点击首页第一个草稿封面')
        el_draft = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeOther[2]/*/XCUIElementTypeButton")
        el_draft.click()

        sc.logger.info('点击"剪辑"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("剪辑").click()

        sc.logger.info('向左滑动')
        start_x = self.width - self.width // 10
        start_bottom = self.height - self.height // 5
        sc.swipe_by_ratio(start_x, start_bottom, 'left', 0.8, 800)

        sc.logger.info('点击"配音"')
        try:
            sc.driver.find_element_by_name("配音").click()
        except NoSuchElementException:
            sc.logger.info('未找到"配音"按钮,再向左滑动')
            sc.swipe_by_ratio(start_x, start_bottom, 'left', 0.8, 800)
            sc.driver.find_element_by_name("配音").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"播放"按钮')
        sc.driver.find_element_by_name(
            "vivavideo editor framebar play").click()

        sc.logger.info('点击"编辑"按钮')
        try:
            WebDriverWait(
                sc.driver,
                20).until(lambda el_edit: el_edit.find_element_by_name(
                    "vivavideo tool fx edit n"))
            sc.logger.info('点击左侧"暂停"按钮')
            sc.driver.find_element_by_name(
                "vivavideo editor framebar paus").click()

            sc.driver.find_element_by_name("vivavideo tool fx edit n").click()
            sc.capture_screen(fun_name, self.img_path)
            sc.logger.info('点击删除按钮')
            sc.driver.find_element_by_name(
                "vivavideo tool subtitle delete").click()
            sc.capture_screen(fun_name, self.img_path)

            sc.logger.info('点击右上角确认按钮')
            sc.driver.find_element_by_name("xiaoying com ok").click()
        except NoSuchElementException:
            sc.logger.error('未找到编辑按钮,请重试')
            return False

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

        sc.logger.info('点击"配音"')
        time.sleep(1)
        sc.driver.find_element_by_name("配音").click()

        sc.logger.info('点击右侧预置"配音"图标')
        sc.driver.find_element_by_name("vivavideo tool sound list n").click()

        sc.logger.info('选择一个"音频"试听')
        el_sound_name = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeTable/*/XCUIElementTypeButton[2]")
        el_sound_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('等待配音添加完成')
        try:
            WebDriverWait(
                sc.driver,
                20).until(lambda el_record: el_record.find_element_by_name(
                    "vivavideo tool sound start n"))
        except NoSuchElementException:
            sc.logger.info('添加的配音音频时长超出20s,可选择时长小的音频或者修改等待时长')

        sc.logger.info('点击"左上角X"放弃添加')
        sc.driver.find_element_by_name("xiaoying com cancel").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"确认"放弃添加')
        sc.driver.find_element_by_name("确认").click()

        sc.logger.info('点击“存草稿”按钮')
        time.sleep(3)
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('返回创作中心主界面')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()
コード例 #14
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_name(
                "vivavideo purchase close n").click()
        except NoSuchElementException:
            sc.logger.info('当前无或者已关闭活动弹窗')

        sc.logger.info('切换到"我"')
        sc.driver.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_name(
                "vivavideo purchase close n").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:
            sc.driver.find_element_by_name("QQ帐号").click()
        except NoSuchElementException:
            sc.driver.find_element_by_name("使用此账号登录").click()

        try:
            try:
                WebDriverWait(
                    sc.driver,
                    10).until(lambda x: x.find_element_by_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
コード例 #15
0
ファイル: test_material.py プロジェクト: loveiset/UItest
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_accessibility_id(
                          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:
            WebDriverWait(
                sc.driver, 3, 1).until(lambda el: el.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('点击“存草稿”按钮')
        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('返回创作页')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda el: el.find_element_by_name(
                          iOS_elements.el_com_back)).click()

        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('点击“存草稿”按钮')
        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('返回创作页')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda el: el.find_element_by_name(
                          iOS_elements.el_com_back)).click()

        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.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('点击“存草稿”按钮')
        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('返回创作页')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda el: el.find_element_by_name(
                          iOS_elements.el_com_back)).click()

        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_04_font(self):
        """素材中心-字体."""
        sc.logger.info('素材中心-字体')
        fun_name = 'test_template_font'

        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('点击“存草稿”按钮')
        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('返回创作页')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda el: el.find_element_by_name(
                          iOS_elements.el_com_back)).click()

        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_05_text(self):
        """素材中心-字幕."""
        sc.logger.info('素材中心-字幕')
        fun_name = 'test_template_text'

        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('点击“存草稿”按钮')
        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('返回创作页')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda el: el.find_element_by_name(
                          iOS_elements.el_com_back)).click()

        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_06_sticker(self):
        """素材中心-动画贴纸."""
        sc.logger.info('素材中心-动画贴纸')
        fun_name = 'test_template_sticker'

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

        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.5, 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('点击“存草稿”按钮')
        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('返回创作页')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda el: el.find_element_by_name(
                          iOS_elements.el_com_back)).click()

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

        sc.logger.info('向上滑动')
        sc.swipe_by_ratio(coord_x, coord_y, 'up', 0.5, 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('点击“动画贴纸”')
        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('点击“存草稿”按钮')
        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('返回创作页')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda el: el.find_element_by_name(
                          iOS_elements.el_com_back)).click()

        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('素材中心')).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, 300)

        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('点击“转场”')
        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('点击“存草稿”按钮')
        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('返回创作页')
        WebDriverWait(sc.driver, 5,
                      1).until(lambda el: el.find_element_by_name(
                          iOS_elements.el_com_back)).click()

        WebDriverWait(
            sc.driver, 5,
            1).until(lambda x: x.find_element_by_name('素材中心')).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('素材中心-动画贴纸测试完成')
コード例 #16
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(self):
        """剪辑-特效-添加."""
        sc.logger.info('剪辑-特效-添加')
        fun_name = 'test_edit_fx'

        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('下载并使用“特效”')
        ba.fx_add()

        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.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('剪辑-特效-添加测试完成')

    def test_edit_fx_del(self):
        """剪辑-特效-删除&放弃."""
        sc.logger.info('剪辑-特效-删除&放弃')
        fun_name = 'test_edit_fx_del'

        sc.logger.info('点击草稿封面')
        time.sleep(0.5)
        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.screen_tap('特效', 200, 200)

        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_name('添加')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"下载更多"')
        el_more = 'xiaoying itembar down more'
        ba.more_download(el_more)

        sc.logger.info('使用特效')
        ba.material_used(iOS_elements.el_store_download1)

        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, 5, 1).until(lambda x: x.find_element_by_name(
            iOS_elements.el_cancel_btn)).click()

        sc.logger.info('确定放弃')
        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('剪辑-特效-删除&放弃测试完成')
コード例 #17
0
class TestEditClipsAdd(TestCase):
    """镜头添加相关操作的测试类."""

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

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

        time.sleep(5)
        sc.logger.info('点击首页第一个草稿封面')
        el_draft = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeOther[2]/*/XCUIElementTypeButton")
        el_draft.click()

        sc.logger.info('点击"剪辑"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("剪辑").click()

        sc.logger.info('向左滑动')
        start_x = self.width - self.width // 10
        start_bottom = self.height - self.height // 5
        sc.swipe_by_ratio(start_x, start_bottom, 'left', 0.8, 800)

        sc.logger.info('点击"添加镜头"')
        el_sound = sc.driver.find_element_by_name('配音')
        coord_x = el_sound.location.get('x')
        coord_y = el_sound.location.get('y')
        sc.swipe_by_ratio(coord_x, coord_y, 'left', 0.8, 800)
        sc.driver.find_element_by_name("添加镜头").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('添加视频')
        el_video = sc.driver.find_element_by_accessibility_id(
            "vivavideo_tool_gallery_audio_type_video")
        el_video.click()
        sc.driver.find_element_by_name("添加 0").click()

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

        sc.logger.info('添加图片')
        el_img = sc.driver.find_element_by_xpath("//*/XCUIElementTypeImage")
        el_img.click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"下一步"')
        sc.driver.find_element_by_name("下一步").click()

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

        sc.logger.info('点击"添加镜头"')
        time.sleep(1)
        sc.driver.find_element_by_name("添加镜头").click()

        sc.logger.info('点击右上角拍摄按钮')
        sc.driver.find_element_by_name(
            "vivavideo gallery create captu").click()
        time.sleep(1)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('开始录制')
        el_capture = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeOther[3]/XCUIElementTypeOther/XCUIElementTypeOther[1]"
        )
        el_capture.click()
        time.sleep(5)

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

        sc.logger.info('点击确认按钮')
        sc.driver.find_element_by_name(
            "vivavideo camera tool icon nex").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"下一步"')
        sc.driver.find_element_by_name("下一步").click()

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

        sc.logger.info('点击"添加镜头"')
        time.sleep(1)
        sc.driver.find_element_by_name("添加镜头").click()

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

        sc.logger.info('添加图片')
        el_img = sc.driver.find_elements_by_xpath("//*/XCUIElementTypeImage")
        el_img[1].click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“左上角按钮”取消')
        sc.driver.find_element_by_name("vivavideo gallery back n").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确认取消')
        sc.driver.find_element_by_name("确认").click()
        time.sleep(3)

        sc.logger.info('存草稿并返回创作页首页')
        sc.driver.find_element_by_name("存草稿").click()
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

    def test_edit_sort(self):
        """剪辑-排序."""
        sc.logger.info('剪辑-排序')
        fun_name = 'test_edit_sort'

        time.sleep(1)
        sc.logger.info('点击首页第一个草稿封面')
        el_draft = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeOther[2]/*/XCUIElementTypeButton")
        el_draft.click()

        sc.logger.info('点击"剪辑"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("剪辑").click()

        sc.logger.info('向左滑动')
        time.sleep(1)
        start_x = self.width - self.width // 10
        start_bottom = self.height - self.height // 5
        for i in range(3):
            sc.swipe_by_ratio(start_x, start_bottom, 'left', 0.8, 800)

        sc.logger.info('点击"排序"')
        sc.driver.find_element_by_name("排序").click()
        sc.capture_screen(fun_name, self.img_path)

        # #长按拖动还需要再调试
        # sc.logger.info('把特效和动画贴纸位置互换')
        # try:
        #     el_fx = sc.driver.find_element_by_name("特效")
        #     el_sticker = sc.driver.find_element_by_name("动画贴纸")
        #     actions = TouchAction(sc.driver)
        #     actions.long_press(el_fx,1000).move_to(el_sticker).release().perform()
        #     sc.capture_screen(fun_name, self.img_path)
        # except Exception as e:
        #     sc.logger.error("排序失败",e)
        #     return False

        sc.logger.info('点击"完成"保存设置')
        sc.driver.find_element_by_name("完成").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('存草稿并返回创作页首页')
        sc.driver.find_element_by_name("存草稿").click()
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()
コード例 #18
0
class TestPreviewUI(TestCase):
    """预览页面的theme测试类."""

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

    def test_preview_01_create(self):
        """创建草稿视频."""
        sc.logger.info('创建草稿视频')
        fun_name = 'test_preview_create'

        time.sleep(5)
        sc.logger.info('点击创作中心主按钮')
        try:
            sc.driver.find_element_by_xpath("//XCUIElementTypeImage[@name='camerta_n']").click()
        except NoSuchElementException:
            sc.driver.find_element_by_xpath("//XCUIElementTypeImage[@name='camerta_f']").click()

        sc.logger.info('点击视频剪辑')
        sc.driver.find_element_by_name("视频剪辑").click()
        time.sleep(1)
        try:
            sc.driver.find_element_by_name("跳过").click()
            time.sleep(1)
            sc.driver.find_element_by_name("视频剪辑").click()
        except NoSuchElementException:
            sc.logger.info('已跳过订阅页面')

        sc.logger.info("授权小影访问相册和媒体资料")
        try:
            sc.driver.find_element_by_name("好").click()  # 授权相册
            time.sleep(2)
            sc.driver.find_element_by_name("好").click()  # 授权媒体资料库
        except NoSuchElementException:
            sc.logger.info("已授权")

        sc.logger.info('添加视频')
        el_video = sc.driver.find_element_by_accessibility_id("vivavideo_tool_gallery_audio_type_video")
        el_video.click()
        sc.driver.find_element_by_name("添加 0").click()

        sc.logger.info('添加图片')
        sc.driver.find_element_by_name("视频").click()
        sc.driver.find_element_by_name("图片").click()
        el_imgs = sc.driver.find_elements_by_xpath("//*/XCUIElementTypeImage")
        i = 1
        while i < len(el_imgs):
            el_imgs[i].click()
            i = i + 1

        sc.logger.info('点击下一步,进入预览页')
        sc.driver.find_element_by_name("下一步").click()
        sc.capture_screen(fun_name,self.img_path)

    def test_preview_02_ui(self):
        """预览页-UI."""
        sc.logger.info('预览页-UI')
        fun_name = 'test_preview_create'

        time.sleep(1)
        sc.logger.info('点击“主题”按钮')
        sc.driver.find_element_by_name("vivavideo tool preview filter ").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“配乐”按钮')
        sc.driver.find_element_by_name("vivavideo tool preview music n").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“剪辑”按钮')
        sc.driver.find_element_by_name("vivavideo tool preview edit n").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“全屏”按钮')
        try:
            el_fullscreen = sc.driver.find_element_by_name("vivavideo playerview fullscree")
            el_fullscreen.click()
            sc.capture_screen(fun_name, self.img_path)
            time.sleep(1)
            sc.logger.info('点击“左上角返回”按钮退出全屏')
            el_fullscreen.click()
        except NoSuchElementException:
            sc.logger.info('该草稿工程为1:1视频,无全屏按钮')

        sc.logger.info('点击“小影水印”按钮')
        time.sleep(1)
        try:
            el_watermark = sc.driver.find_element_by_name("vivavideo watermark edit cn n")
            el_watermark.click()
            time.sleep(0.5)
            sc.capture_screen(fun_name,self.img_path)
            sc.driver.find_element_by_name("vivavideo popup close").click()
        except NoSuchElementException:
            sc.logger.info('会员账号已登录,水印已去除')
        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)
        time.sleep(1)

        sc.logger.info('点击“存草稿”按钮')
        sc.driver.find_element_by_name("存草稿").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('返回创作中心主界面')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

    def test_preview_03_time(self):
        """预览页-时长."""
        sc.logger.info('预览页-时长')
        fun_name = 'test_preview_time'

        time.sleep(1)
        sc.logger.info('点击相册MV')
        sc.driver.find_element_by_name("相册MV").click()

        sc.logger.info('添加图片')
        el_imgs = sc.driver.find_elements_by_xpath("//*/XCUIElementTypeImage")
        i = 1  # 第0个为顶部的下拉框
        while i < len(el_imgs):
            el_imgs[i].click()
            i = i + 1

        sc.logger.info('进入预览页')
        sc.driver.find_element_by_name("下一步").click()

        sc.logger.info('点击“时长”')
        sc.driver.find_element_by_name("vivavideo tool preview imageti").click()
        sc.capture_screen(fun_name,self.img_path)

        sc.logger.info('点击“存草稿”按钮')
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('返回创作中心主界面')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()
コード例 #19
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
コード例 #20
0
ファイル: test_settings.py プロジェクト: loveiset/UItest
class TestSettings(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_settings_01_ui(self):
        """设置:默认值UI遍."""
        sc.logger.info('设置:默认UI遍历')
        fun_name = 'test_settings_ui'
        start_x = self.width // 2
        start_y = self.height // 8
        start_bottom = self.height - start_y

        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("点击设置按钮")
        sc.driver.find_element_by_name(iOS_elements.btn_settings).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('选择"Enlish"')
        WebDriverWait(
            sc.driver, 3,
            1).until(lambda x: x.find_element_by_name('English')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info("切回简体中文")
        WebDriverWait(sc.driver, 3, 1).until(lambda x: x.find_element_by_name(
            'Language already selected')).click()

        time.sleep(0.5)

        sc.logger.info('向上滑动并切换回简体中文')
        for i in range(2):
            sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.7, 300)

        sc.driver.find_element_by_name('简体中文').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('下拉刷新')
        sc.swipe_by_ratio(start_x, start_y, 'down', 0.5, 300)

        checkbox_list = WebDriverWait(
            sc.driver, 3, 1).until(lambda x: x.find_elements_by_ios_predicate(
                "type == 'XCUIElementTypeImage'"))
        for el_checkbox in checkbox_list:
            el_checkbox.click()
            time.sleep(0.5)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info("返回设置页")
        sc.driver.find_element_by_name(iOS_elements.el_com_back).click()

        sc.logger.info("隐私权限")
        WebDriverWait(sc.driver, 3, 1).until(lambda x: x.find_element_by_xpath(
            '//XCUIElementTypeStaticText[@name="私信权限"]')).click()

        sc.logger.info("我关注的人")
        WebDriverWait(sc.driver, 3, 1).until(lambda x: x.find_element_by_xpath(
            '//XCUIElementTypeStaticText[@name="我关注的人"]')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info("返回设置页")
        sc.driver.find_element_by_name(iOS_elements.el_com_back).click()

        sc.logger.info("黑名单")
        WebDriverWait(sc.driver, 3, 1).until(lambda x: x.find_element_by_xpath(
            '//XCUIElementTypeStaticText[@name="黑名单"]')).click()
        sc.capture_screen(fun_name, self.img_path)

        try:
            WebDriverWait(
                sc.driver, 3,
                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("返回设置页")
        sc.driver.find_element_by_name(iOS_elements.el_com_back).click()

        sc.logger.info("隐私账号")
        WebDriverWait(sc.driver, 3, 1).until(lambda x: x.find_element_by_xpath(
            iOS_elements.btn_privacy)).click()
        sc.capture_screen(fun_name, self.img_path)
        sc.logger.info('设置选项UI第一页遍历完成')

    def test_settings_02_feedback(self):
        """设置:意见反馈."""
        sc.logger.info('设置:意见反馈')
        fun_name = 'test_settings_feedback'
        start_x = self.width // 2
        start_y = self.height // 8
        start_bottom = self.height - start_y

        sc.logger.info('向上滑动')
        for i in range(2):
            sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.7, 300)

        sc.logger.info("意见反馈")
        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.feedback()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info("返回设置页")
        sc.driver.find_element_by_name(iOS_elements.el_com_back).click()
        sc.logger.info('意见反馈测试完成')

    def test_settings_03_senior(self):
        """设置:高级设置和其他."""
        sc.logger.info('设置:高级设置和其他')
        fun_name = 'test_settings_senior'
        start_x = self.width // 2
        start_y = self.height // 8
        start_bottom = self.height - start_y

        sc.logger.info('向上滑动')
        sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.7, 300)

        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)

        about_list = sc.driver.find_elements_by_ios_predicate(
            iOS_elements.el_abouts)
        for el in about_list:
            el.click()
            sc.capture_screen(fun_name, self.img_path)
            try:
                sc.driver.find_element_by_name(iOS_elements.about_clo).click()
            except NoSuchElementException:
                WebDriverWait(sc.driver, 3,
                              1).until(lambda x: x.find_element_by_name(
                                  iOS_elements.el_ad_back)).click()

        sc.logger.info("返回设置页")
        WebDriverWait(sc.driver, 3, 1).until(
            lambda x: x.find_element_by_name(iOS_elements.about_back)).click()

        sc.logger.info("成为VIP会员")
        WebDriverWait(
            sc.driver, 3,
            1).until(lambda x: x.find_element_by_name('成为VIP会员')).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('返回设置页')
        WebDriverWait(sc.driver, 3, 1).until(lambda x: x.find_element_by_name(
            iOS_elements.el_vip_close)).click()

        sc.logger.info('向上滑动')
        sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.7, 300)

        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("清除缓存")
        WebDriverWait(sc.driver, 3, 1).until(lambda x: x.find_element_by_xpath(
            '//XCUIElementTypeButton[@name="清除缓存"]')).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('设置:高级设置和其他测试完成')
コード例 #21
0
ファイル: test_autodyne.py プロジェクト: loveiset/UItest
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_camera_self(self):
        """拍摄-自拍视频(全屏)."""
        sc.logger.info('拍摄-美颜趣拍(全屏)')
        fun_name = 'test_camera_self'

        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('拍摄一段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.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('拍摄-美颜趣拍(全屏)测试完成')
コード例 #22
0
ファイル: base.py プロジェクト: loveiset/UItest
# -*- coding: utf-8 -*-
from iOS import script_ultils as sc
import time
from selenium.common.exceptions import TimeoutException, NoSuchElementException
from selenium.webdriver.support.ui import WebDriverWait
from iOS import iOS_elements
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, 300)


def find_element_click(method, timeout, el, duration=1):
    '''
    等待并点击某一控件.
コード例 #23
0
ファイル: test_music.py プロジェクト: hicheng/UItest
class TestEditMusic(TestCase):
    """音乐相关操作测试测试类."""

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

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

        time.sleep(5)
        sc.logger.info('点击创作中心主按钮')
        try:
            sc.driver.find_element_by_xpath(
                "//XCUIElementTypeImage[@name='camerta_n']").click()
        except NoSuchElementException:
            sc.driver.find_element_by_xpath(
                "//XCUIElementTypeImage[@name='camerta_f']").click()

        sc.logger.info('点击首页第一个草稿封面')
        el_draft = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeOther[2]/*/XCUIElementTypeButton")
        el_draft.click()

        sc.logger.info('点击"多段配乐"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("剪辑").click()
        sc.driver.find_element_by_name("多段配乐").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('**************添加第一段配乐**************')
        try:
            sc.logger.info('点击添加按钮')
            sc.driver.find_element_by_name(
                "vivavideo tool multimusic add ").click()
        except NoSuchElementException:
            sc.logger.info('当前视频位置已经添加过配乐,删除原配乐')
            sc.driver.find_element_by_name("vivavideo tool fx edit n").click()
            sc.logger.info('点击删除按钮')
            sc.driver.find_element_by_name(
                "vivavideo tool subtitle delete").click()
            sc.logger.info('点击添加按钮')
            sc.driver.find_element_by_name(
                "vivavideo tool multimusic add ").click()

        sc.logger.info('点击下载按钮')
        el_download = sc.driver.find_element_by_name(
            'vivavideo material download3 n')
        el_download.click()
        sc.capture_screen(fun_name, self.img_path)
        time.sleep(10)

        sc.logger.info('点击第一首已下载音频试听')
        el_music_name = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeTable//*/XCUIElementTypeButton[2]")
        try:
            el_music_name.click()
        except NoSuchElementException:
            sc.logger.error('音频下载未完成,继续等待5s')
            time.sleep(5)
            el_music_name.click()

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

        sc.logger.info('5s后点击屏幕"暂停"播放')
        time.sleep(5)
        actions = TouchAction(sc.driver)
        actions.tap(None, 500, 500, 1).release().perform()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('确认添加的片段')
        sc.driver.find_element_by_name(
            "vivavideo tool subtitle comple").click()

        sc.logger.info('点击左侧"播放按钮"')
        sc.driver.find_element_by_name(
            "vivavideo editor framebar play").click()

        sc.logger.info('5s后点击屏幕"暂停"播放')
        time.sleep(5)
        actions = TouchAction(sc.driver)
        actions.tap(None, 500, 500, 1).release().perform()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('**************添加第二段配乐**************')
        try:
            sc.logger.info('点击添加按钮')
            sc.driver.find_element_by_name(
                "vivavideo tool multimusic add ").click()
        except NoSuchElementException:
            sc.logger.info('当前视频位置已经添加过配乐,删除原配乐')
            sc.driver.find_element_by_name("vivavideo tool fx edit n").click()
            sc.logger.info('点击删除按钮')
            sc.driver.find_element_by_name(
                "vivavideo tool subtitle delete").click()
            sc.logger.info('点击添加按钮')
            sc.driver.find_element_by_name(
                "vivavideo tool multimusic add ").click()

        sc.logger.info('点击第一首音频试听')
        el_music_name = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeTable//*/XCUIElementTypeButton[2]")
        el_music_name.click()

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

        sc.logger.info('3s后点击屏幕"暂停"播放')
        time.sleep(3)
        actions = TouchAction(sc.driver)
        actions.tap(None, 500, 500, 1).release().perform()

        sc.logger.info('确认添加的第二段配乐')
        sc.driver.find_element_by_name(
            "vivavideo tool subtitle comple").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击右上角确认按钮')
        sc.driver.find_element_by_name("xiaoying com ok").click()

        sc.logger.info('点击“存草稿”按钮')
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('返回创作中心主界面')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

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

        time.sleep(1)
        sc.logger.info('点击首页第一个草稿封面')
        el_draft = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeOther[2]/*/XCUIElementTypeButton")
        el_draft.click()

        sc.logger.info('点击"多段配乐"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("剪辑").click()
        sc.driver.find_element_by_name("多段配乐").click()

        sc.logger.info('点击"编辑"按钮')
        sc.driver.find_element_by_name("vivavideo tool fx edit n").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击删除按钮')
        sc.driver.find_element_by_name(
            "vivavideo tool subtitle delete").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击右上角确认按钮')
        sc.driver.find_element_by_name("xiaoying com ok").click()

        sc.logger.info('点击“存草稿”按钮')
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('返回创作中心主界面')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

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

        time.sleep(1)
        sc.logger.info('点击首页第一个草稿封面')
        el_draft = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeOther[2]/*/XCUIElementTypeButton")
        el_draft.click()

        sc.logger.info('点击"多段配乐"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("剪辑").click()
        sc.driver.find_element_by_name("多段配乐").click()

        sc.logger.info('添加一段配乐')
        try:
            sc.logger.info('点击添加按钮')
            sc.driver.find_element_by_name(
                "vivavideo tool multimusic add ").click()
        except NoSuchElementException:
            sc.logger.info('当前视频位置已经添加过配乐,删除原配乐')
            sc.driver.find_element_by_name("vivavideo tool fx edit n").click()
            sc.logger.info('点击删除按钮')
            sc.driver.find_element_by_name(
                "vivavideo tool subtitle delete").click()
            sc.logger.info('点击添加按钮')
            sc.driver.find_element_by_name(
                "vivavideo tool multimusic add ").click()

        sc.logger.info('点击第一首音频试听')
        el_music_name = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeTable//*/XCUIElementTypeButton[2]")
        el_music_name.click()

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

        sc.logger.info('3s后点击屏幕"暂停"播放')
        time.sleep(3)
        actions = TouchAction(sc.driver)
        actions.tap(None, 500, 500, 1).release().perform()

        sc.logger.info('点击左侧"撤销"按钮')
        sc.driver.find_element_by_name(
            "vivavideo tool subtitle undo n").click()

        sc.logger.info('点击添加按钮')
        sc.driver.find_element_by_name(
            "vivavideo tool multimusic add ").click()

        sc.logger.info('点击第一首音频试听')
        el_music_name = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeTable//*/XCUIElementTypeButton[2]")
        el_music_name.click()

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

        sc.logger.info('3s后点击屏幕"暂停"播放')
        time.sleep(3)
        actions = TouchAction(sc.driver)
        actions.tap(None, 500, 500, 1).release().perform()

        sc.logger.info('确认添加配乐')
        sc.driver.find_element_by_name(
            "vivavideo tool subtitle comple").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"左上角X"放弃添加')
        sc.driver.find_element_by_name("xiaoying com cancel").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"确认"放弃添加')
        sc.driver.find_element_by_name("确认").click()

        sc.logger.info('点击“存草稿”按钮')
        time.sleep(3)
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('返回创作中心主界面')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()
コード例 #24
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('剪辑-配音-放弃测试完成')
コード例 #25
0
ファイル: test_edit_collage.py プロジェクト: loveiset/UItest
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('剪辑-画中画-放弃测试完成')
コード例 #26
0
class TestEditCollage(TestCase):
    """编辑页面画中画的基本操作测试类."""

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

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

        time.sleep(5)
        sc.logger.info('点击创作中心主按钮')
        try:
            sc.driver.find_element_by_xpath(
                "//XCUIElementTypeImage[@name='camerta_n']").click()
        except NoSuchElementException:
            sc.driver.find_element_by_xpath(
                "//XCUIElementTypeImage[@name='camerta_f']").click()

        sc.logger.info('点击首页第一个草稿封面')
        el_draft = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeOther[2]/*/XCUIElementTypeButton")
        el_draft.click()

        sc.logger.info('点击"画中画"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("剪辑").click()
        sc.driver.find_element_by_name("画中画").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('**************添加第一张图片**************')
        sc.logger.info('点击添加按钮')
        sc.driver.find_element_by_name(
            "vivavideo editor collage add n").click()

        sc.logger.info('点击"其他相册"')
        sc.driver.find_element_by_name("其他相册").click()

        sc.logger.info('返回画中画')
        sc.driver.find_element_by_name("vivavideo gallery back n").click()

        sc.logger.info('选择一个"图片"添加')
        el_comm = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeCollectionView[1]/*/XCUIElementTypeOther/XCUIElementTypeImage"
        )
        el_comm.click()

        sc.logger.info('镜像"图片"')
        sc.driver.find_element_by_accessibility_id(
            "XiaoYingResource.bundle/vivavideo_tool_subtitle_flip_n").click()

        sc.logger.info('点击右上角保存')
        sc.driver.find_element_by_name("vivavideo editor common ok").click()

        sc.logger.info('点击左侧"暂停"按钮')
        sc.driver.find_element_by_name(
            "vivavideo editor framebar paus").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击底部"确认"按钮')
        sc.driver.find_element_by_name(
            "vivavideo editor framebar comp").click()
        sc.capture_screen(fun_name, self.img_path)

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

        time.sleep(1)
        sc.logger.info('**************添加第二张图片**************')
        sc.logger.info('点击添加按钮')
        sc.driver.find_element_by_name(
            "vivavideo editor collage add n").click()

        sc.logger.info('切换到GIF')
        sc.driver.find_element_by_name("GIF").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('搜索GIF图片')
        el_search = sc.driver.find_element_by_ios_predicate(
            "type == 'XCUIElementTypeTextField' AND value == '搜索Gif'")
        el_search.clear()
        el_search.send_keys('a')
        sc.driver.find_element_by_accessibility_id("Search").click()
        time.sleep(5)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('检查GIF图片下载是否成功')
        try:
            WebDriverWait(
                sc.driver,
                60).until(lambda gif: gif.find_element_by_accessibility_id(
                    "vivavideo_tool_collage_download_n"))
            el_gif_download = sc.driver.find_element_by_accessibility_id(
                "vivavideo_tool_collage_download_n")
            el_gif_download.click()
            time.sleep(10)
            sc.capture_screen(fun_name, self.img_path)
        except Exception as e:
            sc.logger.error('GIF图片加载异常', e)
            sc.capture_screen(fun_name, self.img_path)
            return False

        sc.logger.info('使用该下载的GIF图片')
        el_gif_use = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeCollectionView[2]/*/XCUIElementTypeOther/XCUIElementTypeImage"
        )
        el_gif_use.click()
        time.sleep(5)

        sc.logger.info('镜像"GIF图片"')
        sc.driver.find_element_by_accessibility_id(
            "XiaoYingResource.bundle/vivavideo_tool_subtitle_flip_n").click()

        sc.logger.info('点击右上角保存')
        sc.driver.find_element_by_name("vivavideo editor common ok").click()

        sc.logger.info('点击左侧"暂停"按钮')
        sc.driver.find_element_by_name(
            "vivavideo editor framebar paus").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击底部"确认"按钮')
        sc.driver.find_element_by_name(
            "vivavideo editor framebar comp").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击右上角确认按钮')
        sc.driver.find_element_by_name("vivavideo editor common ok").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“存草稿”按钮')
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('返回创作中心主界面')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

    def test_edit_collage_03_del(self):
        """剪辑-画中画-删除."""
        sc.logger.info('剪辑-画中画-删除')
        fun_name = 'test_edit_text_del'

        time.sleep(1)
        sc.logger.info('点击首页第一个草稿封面')
        el_draft = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeOther[2]/*/XCUIElementTypeButton")
        el_draft.click()

        sc.logger.info('点击"画中画"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("剪辑").click()
        sc.driver.find_element_by_name("画中画").click()

        sc.logger.info('点击已添加的"图片"')
        time.sleep(1)
        sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeOther[2]/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeButton"
        ).click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击删除按钮')
        sc.driver.find_element_by_name(
            "vivavideo editor framebar dele").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击右上角确认按钮')
        sc.driver.find_element_by_name("vivavideo editor common ok").click()

        sc.logger.info('点击“存草稿”按钮')
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('返回创作中心主界面')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

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

        time.sleep(1)
        sc.logger.info('点击首页第一个草稿封面')
        el_draft = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeOther[2]/*/XCUIElementTypeButton")
        el_draft.click()

        sc.logger.info('点击"画中画"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("剪辑").click()
        sc.driver.find_element_by_name("画中画").click()

        sc.logger.info('点击添加按钮')
        sc.driver.find_element_by_name(
            "vivavideo editor collage add n").click()

        sc.logger.info('选择一个"图片"添加')
        el_comm = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeCollectionView[1]/*/XCUIElementTypeOther/XCUIElementTypeImage"
        )
        el_comm.click()

        sc.logger.info('点击右上角保存')
        sc.driver.find_element_by_name("vivavideo editor common ok").click()

        sc.logger.info('点击左侧"暂停"按钮')
        sc.driver.find_element_by_name(
            "vivavideo editor framebar paus").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击左侧"撤销"按钮')
        sc.driver.find_element_by_name(
            "vivavideo editor framebar undo").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('放弃编辑')
        sc.driver.find_element_by_name(
            "vivavideo editor common cancel").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"确认"放弃添加')
        sc.driver.find_element_by_name("确认").click()

        sc.logger.info('点击“存草稿”按钮')
        time.sleep(3)
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('返回创作中心主界面')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()
コード例 #27
0
class TestCreationTemplate(TestCase):
    """创作页面素材中心测试类.
    滤镜-下载:"vivavideo material download2 n"
    其他-下载:"vivavideo material download n"
    gif-下载:"下载"
    其他-删除:"vivavideo material delete n"
    gif-删除:"删除"
    管理:"vivavideo material Management "
    """

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

    @classmethod
    def template_download(cls, type, el_download):
        """素材下载."""
        sc.logger.info('%s下载测试', type)

        fun_name = 'template_download'

        sc.logger.info('开始下载')
        el_template_down = sc.driver.find_element_by_name(el_download)
        try:
            sc.logger.info('点击“下载”按钮')
            el_template_down.click()
            sc.capture_screen(fun_name, cls.img_path)
        except NoSuchElementException:
            sc.logger.info('当前页面所有素材已下载完成')
            return True

        sc.logger.info('检查素材下载是否成功')
        try:
            WebDriverWait(sc.driver, 30).until(
                lambda theme_use: theme_use.find_element_by_name("使用"))
            sc.capture_screen(fun_name, cls.img_path)
        except TimeoutError as t:
            sc.logger.error('素材下载超时', t)
            return False
        except Exception as e:
            sc.logger.error('素材下载失败', e)
            return False

        sc.logger.info('%s下载测试完成', type)

    @classmethod
    def template_use(cls, type):
        """使用素材并进入预览页测试."""
        sc.logger.info('%s使用素材并进入预览页测试', type)
        time.sleep(1)
        fun_name = 'template_use'

        sc.logger.info('点击“使用”按钮')
        try:
            el_template_use = sc.driver.find_element_by_name("使用")
            el_template_use.click()
        except NoSuchElementException:
            sc.logger.error('未找到已下载的素材')
            return False
        sc.capture_screen(fun_name, cls.img_path)

        sc.logger.info('添加视频')
        time.sleep(2)
        el_video = sc.driver.find_element_by_accessibility_id(
            "vivavideo_tool_gallery_audio_type_video")
        el_video.click()
        sc.driver.find_element_by_name("添加 0").click()

        sc.logger.info('添加多张图片')
        sc.driver.find_element_by_name("视频").click()
        sc.driver.find_element_by_name("图片").click()
        el_imgs = sc.driver.find_elements_by_xpath("//*/XCUIElementTypeImage")
        i = 1
        while i < len(el_imgs):
            el_imgs[i].click()
            i = i + 1

        sc.logger.info('点击"下一步"')
        sc.driver.find_element_by_name("下一步").click()

        sc.logger.info('%s使用并进入预览页测试完成', type)

    @classmethod
    def theme_manager(cls, type, el_delete):
        """主题管理."""
        sc.logger.info('%s删除测试', type)
        fun_name = 'theme_manager'

        sc.driver.find_element_by_name(
            "vivavideo material Management ").click()
        sc.capture_screen(fun_name, cls.img_path)

        el_template_del = sc.driver.find_element_by_name(el_delete)
        el_template_del.click()
        try:
            sc.driver.find_element_by_name("确认").click()
        except NoSuchElementException:
            sc.logger.info('%s删除不需要确认', type)
        sc.capture_screen(fun_name, cls.img_path)

        sc.logger.info('删除完成后,返回创作中心页面')
        el_back = sc.driver.find_element_by_name("vivavideo com nav back n")
        for i in range(3):
            time.sleep(1)
            el_back.click()

        sc.logger.info('%s删除测试完成', type)

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

        start_x = self.width - self.width // 5
        start_bottom = self.height // 2

        time.sleep(5)
        sc.logger.info('点击创作中心主按钮')
        try:
            sc.driver.find_element_by_xpath(
                "//XCUIElementTypeImage[@name='camerta_n']").click()
        except NoSuchElementException:
            sc.driver.find_element_by_xpath(
                "//XCUIElementTypeImage[@name='camerta_f']").click()

        sc.logger.info('点击"素材中心"')
        try:
            sc.driver.find_element_by_name("素材中心").click()
            sc.capture_screen(fun_name, self.img_path)
        except NoSuchElementException:
            sc.logger.info('"素材中心"在第二页,需要向左滑动')
            sc.swipe_by_ratio(start_x, start_bottom, 'left', 0.6, 500)
            sc.driver.find_element_by_name("素材中心").click()
            sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“主题”')
        time.sleep(0.5)
        sc.driver.find_element_by_name("主题").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载“主题”')
        btn_download = 'vivavideo material download n'
        self.template_download('主题', btn_download)

        sc.logger.info('使用“主题”')
        self.template_use('主题')
        time.sleep(2)

        sc.logger.info('点击“存草稿”按钮')
        sc.driver.find_element_by_name("存草稿").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击左上角返回按钮退回创作中心')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

        sc.logger.info('点击"素材中心"')
        sc.driver.find_element_by_name("素材中心").click()

        sc.logger.info('点击"主题"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("主题").click()

        sc.logger.info('删除下载的主题')
        btn_del = 'vivavideo material delete n'
        self.theme_manager('主题', btn_del)

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

        time.sleep(1)
        sc.logger.info('点击"素材中心"')
        sc.driver.find_element_by_name("素材中心").click()

        sc.logger.info('点击"滤镜"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("滤镜").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载“滤镜”')
        btn_download = 'vivavideo material download2 n'
        self.template_download('滤镜', btn_download)

        sc.logger.info('使用“滤镜”')
        self.template_use('滤镜')
        time.sleep(2)

        sc.logger.info('保存使用的滤镜')
        sc.driver.find_element_by_name("xiaoying com ok").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“存草稿”按钮')
        time.sleep(1)
        sc.driver.find_element_by_name("存草稿").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击左上角返回按钮退回创作中心')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

        sc.logger.info('点击"素材中心"')
        sc.driver.find_element_by_name("素材中心").click()

        sc.logger.info('点击"滤镜"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("滤镜").click()

        sc.logger.info('删除下载的滤镜')
        btn_del = 'vivavideo material delete n'
        self.theme_manager('滤镜', btn_del)

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

        time.sleep(1)
        sc.logger.info('点击"素材中心"')
        sc.driver.find_element_by_name("素材中心").click()

        sc.logger.info('点击"特效"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("特效").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载“特效”')
        btn_download = 'vivavideo material download n'
        self.template_download('特效', btn_download)

        sc.logger.info('使用“特效”')
        self.template_use('特效')
        time.sleep(2)

        sc.logger.info('保存使用的特效')
        sc.driver.find_element_by_name("xiaoying com ok").click()
        time.sleep(1)
        sc.driver.find_element_by_name("xiaoying com ok").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“存草稿”按钮')
        time.sleep(1)
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('点击左上角返回按钮退回创作中心')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

        sc.logger.info('点击"素材中心"')
        sc.driver.find_element_by_name("素材中心").click()

        sc.logger.info('点击"特效"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("特效").click()

        sc.logger.info('删除下载的特效')
        btn_del = 'vivavideo material delete n'
        self.theme_manager('特效', btn_del)

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

        time.sleep(1)
        sc.logger.info('点击"素材中心"')
        sc.driver.find_element_by_name("素材中心").click()

        sc.logger.info('点击"字体"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("字体").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载“字体”')
        btn_download = 'vivavideo material download n'
        self.template_download('字体', btn_download)

        sc.logger.info('使用“字体”')
        self.template_use('字体')
        time.sleep(2)

        sc.logger.info('确认使用该下载的字体')
        sc.driver.find_element_by_name("vivavideo editor common ok").click()
        time.sleep(0.5)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('截取使用该字体的片段')
        try:
            WebDriverWait(
                sc.driver,
                300).until(lambda theme_use: theme_use.find_element_by_name(
                    "vivavideo editor common ok"))
            sc.capture_screen(fun_name, self.img_path)
            sc.driver.find_element_by_name(
                "vivavideo editor common ok").click()
        except TimeoutError as t:
            sc.logger.error('视频时长超出300s,尚未完成添加字幕,试一试使用时长较短的视频。', t)
            return False

        sc.logger.info('点击“存草稿”按钮')
        time.sleep(1)
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('点击左上角返回按钮退回创作中心')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

        sc.logger.info('点击"素材中心"')
        sc.driver.find_element_by_name("素材中心").click()

        sc.logger.info('点击"字体"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("字体").click()

        sc.logger.info('删除下载的字体')
        btn_del = 'vivavideo material delete n'
        self.theme_manager('字体', btn_del)

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

        time.sleep(1)
        sc.logger.info('点击"素材中心"')
        sc.driver.find_element_by_name("素材中心").click()

        sc.logger.info('向上滑动')
        start_x = self.width // 2
        start_bottom = self.height - self.height // 5
        sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.6, 500)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击"字幕"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("字幕").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载“字幕”')
        btn_download = 'vivavideo material download n'
        self.template_download('字幕', btn_download)

        sc.logger.info('使用“字幕”')
        self.template_use('字幕')
        time.sleep(2)

        sc.logger.info('确认使用该下载的字幕')
        sc.driver.find_element_by_name("vivavideo editor common ok").click()
        time.sleep(0.5)

        sc.logger.info('截取使用该字体的片段')
        try:
            WebDriverWait(
                sc.driver,
                300).until(lambda theme_use: theme_use.find_element_by_name(
                    "vivavideo editor common ok"))
            sc.capture_screen(fun_name, self.img_path)
            sc.driver.find_element_by_name(
                "vivavideo editor common ok").click()
        except TimeoutError as t:
            sc.logger.error('视频时长超出300s,尚未完成添加字幕,试一试使用时长较短的视频。', t)
            return False

        sc.logger.info('点击“存草稿”按钮')
        time.sleep(1)
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('点击左上角返回按钮退回创作中心')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

        sc.logger.info('点击"素材中心"')
        sc.driver.find_element_by_name("素材中心").click()

        sc.logger.info('向上滑动')
        sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.6, 500)

        sc.logger.info('点击"字幕"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("字幕").click()

        sc.logger.info('删除下载的字幕')
        btn_del = 'vivavideo material delete n'
        self.theme_manager('字幕', btn_del)

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

        time.sleep(1)
        sc.logger.info('点击"素材中心"')
        sc.driver.find_element_by_name("素材中心").click()

        sc.logger.info('向上滑动')
        start_x = self.width // 2
        start_bottom = self.height - self.height // 5
        sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.6, 500)

        sc.logger.info('点击"动画贴纸"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("动画贴纸").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载“动画贴纸”')
        btn_download = 'vivavideo material download n'
        self.template_download('动画贴纸', btn_download)

        sc.logger.info('使用“动画贴纸”')
        self.template_use('动画贴纸')
        time.sleep(2)

        sc.logger.info('确认使用该下载的贴纸')
        sc.driver.find_element_by_name("xiaoying com ok").click()
        time.sleep(0.5)
        sc.driver.find_element_by_name("xiaoying com ok").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“存草稿”按钮')
        time.sleep(1)
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('点击左上角返回按钮退回创作中心')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

        sc.logger.info('点击"素材中心"')
        sc.driver.find_element_by_name("素材中心").click()

        sc.logger.info('向上滑动')
        sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.6, 500)

        sc.logger.info('点击"动画贴纸"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("动画贴纸").click()

        sc.logger.info('删除下载的贴纸')
        btn_del = 'vivavideo material delete n'
        self.theme_manager('动画贴纸', btn_del)

    def test_template_07_giphy(self):
        """GIPHY-下载."""
        sc.logger.info('素材中心-GIPHY')
        fun_name = 'test_template_giphy'

        time.sleep(1)
        sc.logger.info('点击"素材中心"')
        sc.driver.find_element_by_name("素材中心").click()

        sc.logger.info('向上滑动')
        start_x = self.width // 2
        start_bottom = self.height - self.height // 5
        sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.6, 500)

        sc.logger.info('点击"动画贴纸"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("动画贴纸").click()

        sc.logger.info('切换到"GIF"分类')
        sc.driver.find_element_by_name("GIF").click()
        time.sleep(3)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载“GIF贴纸”')
        btn_download = '下载'
        self.template_download('GIF贴纸', btn_download)

        sc.logger.info('使用“GIF贴纸”')
        self.template_use('GIF贴纸')
        time.sleep(2)

        sc.logger.info('确认使用该下载的GIF贴纸')
        sc.driver.find_element_by_name("xiaoying com ok").click()
        time.sleep(0.5)
        sc.driver.find_element_by_name("xiaoying com ok").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“存草稿”按钮')
        time.sleep(1)
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('点击左上角返回按钮退回创作中心')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

        sc.logger.info('点击"素材中心"')
        sc.driver.find_element_by_name("素材中心").click()

        sc.logger.info('向上滑动')
        sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.6, 500)

        sc.logger.info('点击"动画贴纸"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("动画贴纸").click()

        sc.logger.info('切换到"GIF"分类')
        sc.driver.find_element_by_name("GIF").click()
        time.sleep(3)

        sc.logger.info('删除下载的GIF贴纸')
        btn_del = '删除'
        self.theme_manager('GIF贴纸', btn_del)

    #转场下载按钮无法定位,请先至少下载一个转场再进行相关测试
    def test_template_08_transition(self):
        """素材中心-转场."""
        sc.logger.info('素材中心-转场')
        fun_name = 'test_template_transition'

        time.sleep(1)
        sc.logger.info('点击"素材中心"')
        sc.driver.find_element_by_name("素材中心").click()

        sc.logger.info('向上滑动')
        start_x = self.width // 2
        start_bottom = self.height - self.height // 5
        sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.6, 500)

        sc.logger.info('点击"转场"')
        time.sleep(0.5)
        try:
            sc.driver.find_element_by_name("转场").click()
        except NoSuchElementException:
            sc.logger.info('仍需要上滑显示转场分类')
            sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.6, 500)
            sc.driver.find_element_by_name("转场").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('下载“转场”')
        btn_download = 'vivavideo material download n'
        self.template_download('转场', btn_download)

        sc.logger.info('使用“转场”')
        self.template_use('转场')
        time.sleep(2)

        sc.logger.info('确认使用该下载的转场')
        sc.driver.find_element_by_name("xiaoying com ok").click()
        time.sleep(0.5)
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“存草稿”按钮')
        time.sleep(1)
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('点击左上角返回按钮退回创作中心')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

        sc.logger.info('点击"素材中心"')
        sc.driver.find_element_by_name("素材中心").click()

        sc.logger.info('向上滑动')
        sc.swipe_by_ratio(start_x, start_bottom, 'up', 0.6, 500)

        sc.logger.info('点击"转场"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("转场").click()

        sc.logger.info('删除下载的转场')
        btn_del = 'vivavideo material delete n'
        self.theme_manager('转场', btn_del)
コード例 #28
0
ファイル: test_transition.py プロジェクト: hicheng/UItest
class TestEditTransition(TestCase):
    """转场的基本操作测试类."""

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

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

        time.sleep(5)
        sc.logger.info('点击首页第一个草稿封面')
        el_draft = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeOther[2]/*/XCUIElementTypeButton")
        el_draft.click()

        sc.logger.info('点击"剪辑"')
        time.sleep(0.5)
        sc.driver.find_element_by_name("剪辑").click()

        sc.logger.info('向左滑动')
        start_x = self.width - self.width // 10
        start_bottom = self.height - self.height // 5
        sc.swipe_by_ratio(start_x, start_bottom, 'left', 0.8, 800)

        sc.logger.info('点击"转场"')
        sc.driver.find_element_by_name("转场").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('选择一个"转场"')
        el_tran = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeCollectionView/XCUIElementTypeCell[3]/XCUIElementTypeOther/XCUIElementTypeImage"
        )
        el_tran.click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('切回"无转场"')
        time.sleep(0.5)
        el_empty = sc.driver.find_element_by_accessibility_id(
            "XiaoYingResource.bundle/vivavideo_tool_camera_none_n")
        el_empty.click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“下载更多”按钮')
        time.sleep(0.5)
        el_more = sc.driver.find_element_by_accessibility_id(
            "XiaoYingResource.bundle/vivavideo_tool_camera_store_n")
        el_more.click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“左上角”返回预览页')
        time.sleep(0.5)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

        sc.logger.info('点击“多选”')
        sc.driver.find_element_by_name("多选").click()

        sc.logger.info('点击“全选”')
        sc.driver.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("确认").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击“右上角”保存')
        sc.driver.find_element_by_name("xiaoying com ok").click()

        # sc.logger.info('再次点击"转场"')
        # sc.driver.find_element_by_name("转场").click()

        # sc.logger.info('切回"无转场"')
        # el_empty = sc.driver.find_element_by_accessibility_id(
        #     "XiaoYingResource.bundle/vivavideo_tool_camera_none_n")
        # el_empty.click()
        # sc.capture_screen(fun_name, self.img_path)
        #
        # sc.logger.info('点击“左上角X”取消')
        # sc.driver.find_element_by_name("xiaoying com cancel").click()
        # sc.capture_screen(fun_name, self.img_path)
        #
        # sc.logger.info('确认取消')
        # sc.driver.find_element_by_name("确认").click()
        # time.sleep(3)

        sc.logger.info('存草稿并返回创作页首页')
        sc.driver.find_element_by_name("存草稿").click()
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()
コード例 #29
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'

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

        sc.logger.info('点击“高清拍摄”按钮')
        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)
        ba.find_element_click('name', 5, iOS_elements.el_filter_icon)
        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)
        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('退出更多页面')
        ba.find_element_click('xpath', 10, iOS_elements.el_studio_back)
        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_02_settings(self):
        """拍摄-设置相关."""
        sc.logger.info('拍摄-设置相关')
        fun_name = 'test_camera_normal_settings'

        sc.logger.info('点击“高清拍摄”按钮')
        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)
        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, 3, 1).until(lambda x: x.find_element_by_xpath(
            iOS_elements.el_home_camera)).click()

        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('拍摄-高清相机拍摄完成')
コード例 #30
0
class TestCameraMusic(TestCase):
    """camera音乐视频的基本测试类."""

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

    def test_music_01_shot(self):
        """拍摄-音乐视频(3:4)."""
        fun_name = 'test_music_shot'

        time.sleep(5)
        sc.logger.info('点击创作中心主按钮')
        try:
            sc.driver.find_element_by_accessibility_id("camerta_n").click()
        except NoSuchElementException:
            sc.driver.find_element_by_accessibility_id("camerta_f").click()

        sc.logger.info('向左滑动')
        start_x = self.width - self.width // 5
        start_bottom = self.height // 2
        sc.swipe_by_ratio(start_x, start_bottom, 'left', 0.6, 500)
        sc.capture_screen(fun_name, self.img_path)

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

        sc.logger.info('跳过订阅页面')
        try:
            sc.driver.find_element_by_name("跳过").click()
            time.sleep(1)
            sc.driver.find_element_by_name("音乐视频").click()
        except NoSuchElementException:
            sc.logger.info('已跳过订阅页面')

        sc.logger.info("授权小影访问相机和麦克风")
        try:
            sc.driver.find_element_by_name("好").click()  # 授权访问相机
            time.sleep(1)
            sc.driver.find_element_by_name("好").click()  # 授权访问麦克风
            time.sleep(1)
        except NoSuchElementException:
            sc.logger.info("已授权")

        sc.logger.info('切换到3:4拍摄')
        time.sleep(1)
        el_ful = sc.driver.find_element_by_name(
            "vivavideo camera tool icon ful")
        el_ful.click()
        sc.capture_screen(fun_name, self.img_path)

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

        sc.logger.info('点击下载按钮')
        el_download = sc.driver.find_element_by_name(
            'vivavideo material download3 n')
        el_download.click()
        sc.capture_screen(fun_name, self.img_path)
        time.sleep(10)

        sc.logger.info('点击第一首已下载音频试听')
        el_music_name = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeTable//*/XCUIElementTypeButton[2]")
        try:
            el_music_name.click()
        except NoSuchElementException:
            sc.logger.error('音频下载未完成,继续等待5s')
            time.sleep(5)
            el_music_name.click()

        sc.logger.info('点击播放/暂停按钮')
        sc.driver.find_element_by_name("vivavideo tool camera pause n").click()
        sc.capture_screen(fun_name, self.img_path)

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

        sc.logger.info('开始录制')
        # 点拍5s
        el_capture = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeOther[5]/XCUIElementTypeOther/XCUIElementTypeOther[1]"
        )
        el_capture.click()
        time.sleep(5)
        sc.logger.info('拍摄5s后点击录制按钮停止拍摄')
        el_capture.click()

        sc.logger.info('录制完成,进入预览页')
        try:
            sc.logger.info('点击确认按钮')
            sc.driver.find_element_by_name(
                "vivavideo camera tool icon nex").click()
        except NoSuchElementException:
            sc.logger.info('音乐时长较短,已自动跳转预览页')

        sc.logger.info('点击“存草稿”按钮')
        time.sleep(0.5)
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('点击左上角返回按钮退回创作中心')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()

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

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

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

        sc.logger.info('点击第一首已下载音频试听')
        el_music_name = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeTable//*/XCUIElementTypeButton[2]")
        el_music_name.click()

        sc.logger.info('点击播放/暂停按钮')
        sc.driver.find_element_by_name("vivavideo tool camera pause n").click()

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

        sc.logger.info('开始录制')
        # 点拍5s
        el_capture = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeOther[5]/XCUIElementTypeOther/XCUIElementTypeOther[1]"
        )
        el_capture.click()
        time.sleep(5)
        sc.logger.info('拍摄5s后点击录制按钮停止拍摄')
        el_capture.click()

        sc.logger.info('录制完成,进入预览页')
        try:
            sc.logger.info('点击确认按钮')
            sc.driver.find_element_by_name(
                "vivavideo camera tool icon nex").click()
        except NoSuchElementException:
            sc.logger.info('音乐时长较短,已自动跳转预览页')

        sc.logger.info('点击左上角返回按钮')
        sc.driver.find_element_by_name("xiaoying com back").click()
        sc.capture_screen(fun_name, self.img_path)

        sc.logger.info('点击音乐标题')
        time.sleep(1)
        sc.driver.find_element_by_accessibility_id(
            "vivavideo_camera_tool_icon_music_nrm").click()
        sc.capture_screen(fun_name, self.img_path)

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

        sc.logger.info('点击音乐名')
        time.sleep(1)
        el_music_name = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeTable//*/XCUIElementTypeButton[2]")
        el_music_name.click()

        sc.logger.info('点击播放/暂停按钮')
        sc.driver.find_element_by_name("vivavideo tool camera pause n").click()

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

        sc.logger.info('开始录制')
        # 点拍5s
        el_capture = sc.driver.find_element_by_xpath(
            "//*/XCUIElementTypeOther[5]/XCUIElementTypeOther/XCUIElementTypeOther[1]"
        )
        el_capture.click()
        time.sleep(5)
        sc.logger.info('拍摄5s后点击录制按钮停止拍摄')
        el_capture.click()

        sc.logger.info('录制完成,进入预览页')
        try:
            sc.logger.info('点击确认按钮')
            sc.driver.find_element_by_name(
                "vivavideo camera tool icon nex").click()
        except NoSuchElementException:
            sc.logger.info('音乐时长较短,已自动跳转预览页')

        sc.logger.info('点击“存草稿”按钮')
        time.sleep(0.5)
        sc.driver.find_element_by_name("存草稿").click()

        sc.logger.info('点击左上角返回按钮退回创作中心')
        time.sleep(1)
        sc.driver.find_element_by_name("vivavideo com nav back n").click()