Android上的Appium无法找到屏幕滚动部分不可见的元素

时间:2016-11-23 19:01:37

标签: android integration-testing appium

我们正在使用Appium 1.5.3。

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

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

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

1 个答案:

答案 0 :(得分:1)

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

但是如果你在iOS中尝试相同,你会发现iOS暴露了屏幕上的所有元素 - 当前可见的元素和需要滚动的元素。因此无需在iOS中滚动

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

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

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

TouchAction

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

使用TouchActions,您也可以使用坐标或屏幕上的元素进行滚动。