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