我遇到了这个与 appium UI 自动化相关的有趣问题。在我的应用程序中,用户水平滚动操作后动态加载的 UI 元素很少。我试图构建我的自定义方法来对 UI 元素执行水平操作,但没有运气(附上错误截图)。我看到 (x,y) 位置在垂直滚动时效果很好,想知道是否有人做过水平滚动以使隐藏元素可见(动态加载的元素)?如果您对此有任何指示,请告诉我。提前致谢。注意:在下面的屏幕截图中,您可以看到最后一个可见元素是 16x20,但之后还有一个按钮“20x30”,我正在尝试选择它。我尝试了以下选项:首先: browser.execute('mobile: scroll', {element: element, direction: 'left'}); 第二:
screenAction.swipeLR(element,5);
我在自定义方法中传递的元素是最后一个可见元素,即 16x20:
{
console.log("Performing touch ops horizontally");
//element.touchMove(10,0);
//element.scrollIntoView();
const xLocation = element.getLocation('x')
console.log(xLocation); // outputs: 150
const yLocation = element.getLocation('y')
console.log(yLocation); // outputs: 20
const swipeStart = {
x:<Number>xLocation,
y: <Number>yLocation,
};
const swipeEnd = {
x: <Number>(xLocation+20),
y: <Number>yLocation,
};
// scroll up-to numberOfSwipes
let counter = 0;
while (counter < numberOfSwipes) {
console.log('Swipe process started');
this.swipe(swipeStart, swipeEnd);
counter += 1;
if (counter >= numberOfSwipes) {
break;
}
}
}````
[![enter image description here][1]][1]
[![enter image description here][2]][2]
[1]: https://i.stack.imgur.com/t893q.png
[2]: https://i.stack.imgur.com/YMh9Z.png