我们正在使用Appium 1.5.3。
当Appium启动我们的应用程序进行测试时,部分应用程序不会滚动到视图中。 Appium根本无法与这些部分互动。
假设我们想要点击当前不在可见部分的按钮,单击它的唯一方法是反复滚动并尝试单击。对于所有情况,这都不是一个合适的解决方案,我只是用它来描述问题。
我想知道我们是否做错了,或者这是一个已知的Appium限制以及如何解决它?
答案 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,您也可以使用坐标或屏幕上的元素进行滚动。