2016-11-23 63 views
3

我们正在使用Appium 1.5.3。Android上的Appium无法找到在屏幕滚动部分不可见的元素

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

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

我想知道如果我们做错了什么,或者如果这是一个已知的Appium限制和如何解决它?

回答

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,您可以滚动使用坐标或在屏幕上的元素。