【问题标题】:Appium on Android cannot locate elements that are not visible on the scrolled portion of the screenAndroid 上的 Appium 无法定位在屏幕滚动部分不可见的元素
【发布时间】:2016-11-23 19:01:36
【问题描述】:

我们使用的是 Appium 1.5.3。

当 Appium 启动我们的应用程序进行测试时,应用程序的某些部分不会滚动到视图中。 Appium 根本无法与这些部分进行交互。

假设我们要点击一个当前不在可见部分的按钮,点击它的唯一方法是反复滚动并尝试点击。这不是适用于所有情况的正确解决方案,我只是用来描述问题。

我想知道我们是否做错了什么,或者这是否是已知的 Appium 限制以及如何解决它?

【问题讨论】:

    标签: android integration-testing appium


    【解决方案1】:

    这不是 Appium 的限制,而是 Android 框架的限制。如果你使用 UIAutomator 并扫描你的手机屏幕,你会发现 UIAutomator 只显示当前显示在屏幕上的元素。它不会显示那些不可见的元素(您需要向上/向下滚动的元素)。

    但是如果您在 iOS 中尝试相同的操作,您会注意到 iOS 会在屏幕上公开所有元素——当前可见的元素和需要滚动的元素。所以iOS中不需要滚动

    没有解决方法。唯一的选择是向上/向下滚动并在可见屏幕上显示您要处理的元素。

    Appium 提供了许多选项来帮助您在屏幕上滚动 -

    driver.swipe(startX, startY, endX, endY, duration);
    

    触摸动作

    TouchAction touchAction = new TouchAction(driverMobile);
    touchAction.press(startX, startY).moveTo(endX, endY).release().perform();
    

    使用 TouchActions,您既可以使用坐标滚动,也可以通过屏幕上的元素滚动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-29
      • 2019-05-20
      • 2015-04-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      • 1970-01-01
      • 2014-09-08
      相关资源
      最近更新 更多