gpt4 book ai didi

selenium - 无法使用 Appium Selenium Android 在 ListView 中滚动元素

转载 作者:行者123 更新时间:2023-12-03 23:15:15 25 4
gpt4 key购买 nike

几天来,我试图找到一个在 ListView 中滚动的简单解决方案

由于该 Appium Inspector 不提供列表的所有元素(仅通过手动滑动和刷新检查器然后加载具有新实例的新元素。

经过研究,我发现列表项之间的距离如下:

Item Location= (15, 828)
Item Location= (15, 1209)
Item Location= (15, 1590)

所以我想每次点击都需要向下滚动 381 像素,经过这么多次尝试,我找不到这部分代码的解决方案,如果有人可以提供帮助,我会很高兴:
List<WebElement> list = driver.findElements(By.id("net.balink.diplomat.qa:id/btnAddToCart"));
System.out.println("List Size is= " + list.size());

for (int j = 0; j < list.size(); j++) {
WebElement listItem = list.get(j);
Point location = listItem.getLocation();
System.out.println("Location= " + location);
listItem.click();

//to do here: swipe 381 px down after any click, then re-initialize
//the listItem in order to get a new index - and the loop when
//theres no more list items

Thread.sleep(2000);
}

最佳答案

更可靠的方法是使用原生 UiAutomator 方式:

因此,首先使用 scrollable: true 找到列表元素的父 View 属性到位。那绝对应该是至少一个。

然后使用检查器来构建和测试您的 UiAutomator定位器

MobileElement elementScrollTo = driver
.findElementByAndroidUIAutomator("new UiScrollable(new UiSelector()"
+ ".resourceId(\"android:id/list\")).scrollIntoView("
+ "new UiSelector().text(\"Some text\"));");
UiSelector有蛮有钱的 API ,检查它并找到最适合您的。

这种方法比 TouchActions 更好,因为您不依赖于设备屏幕分辨率/坐标。

关于selenium - 无法使用 Appium Selenium Android 在 ListView 中滚动元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52134566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com