【问题标题】:How to automate video playback on an android app with appium如何使用 appium 在 Android 应用上自动播放视频
【发布时间】:2021-04-08 07:27:38
【问题描述】:

所以,我正在尝试自动化一个在 OTT 上提供媒体内容的 Android 应用,比如 netflix。

现在我使用的自动化工具是 Appium with java。

应用程序自动化的其余部分对我来说工作得很好。但是,我无法验证视频播放。视频播放器一启动,UI automator 就无法获取设备的屏幕截图。为了解决这个问题,我从开发团队创建的播放器 xml 文件中获取了“play”、“seekbar”等控件的对象 ID。

但是,即使在那之后,如果我尝试运行我的脚本,我总是会收到 NoSuchElement 异常。

我是否提到过,我也无法进行视觉比较,因为内容的 DRM 加密可以防止任何人在播放视频内容时截取屏幕截图。

我已经被这个问题困扰了一段时间了。非常感谢我能得到的任何帮助。

【问题讨论】:

    标签: android video automation appium


    【解决方案1】:

    您可以在 netflix 中查找微调器/加载元素。捕获微调器/加载元素的最佳方法是在慢速网络上运行 netflix 并尝试流式传输。您可以转储屏幕并获取微调器元素的 ID。获得元素 ID 后,尝试搜索微调器元素。如果未找到 spinner 元素,则表示视频已加载。

    【讨论】:

    • 不幸的是,一旦视频播放器启动,我就无法获取单个元素。甚至没有装载机:(
    • 到达播放器并关闭您的 wifi 和数据。之后点击播放。 Spinner 将被加载。使用 uiautomator 查找微调器。
    • 那么,让我详细解释一下。在播放器启动之前我没有加载器。所以,这部分被排除在外。其次,该解决方案只会检查播放器,无法真正知道我主要尝试实现的播放器中视频播放的状态。
    • 这是我在加载视频之前看到的 - android.widget.TextView Loading… 和微调器类 - android.widget.ProgressBar
    • 要知道视频是否开始播放,请检查 dumpsys 并查看是否正在播放音频。很难验证视频内容,但可以轻松检测到音频。
    【解决方案2】:

    您可以比较进度条的宽度或持续时间(如果显示)。一些播放器过去常常在元素上具有仅在播放内容时才出现的元素或属性。

    【讨论】:

      猜你喜欢
      • 2016-12-08
      • 1970-01-01
      • 1970-01-01
      • 2020-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-08
      相关资源
      最近更新 更多