gpt4 book ai didi

java - Appium:如何遍历未知长度的 ListView ?

转载 作者:行者123 更新时间:2023-11-29 08:34:33 26 4
gpt4 key购买 nike

我有一个 ListView ,其中包含理论上我不知道的层次结构。我试图接受一个字符串数组并为其中的每个字符串创建 MobileElements,但是由于我通过注释自动 (PageFactory) 定义我的元素的方式,它们不能使用变量。我也不知道在方法中定义我的注释是否有效或合适。

我写的代码,显然不能编译如下:

public void selectLocation(String[] location) {

List<MobileElement> locationsList = new ArrayList<>();
for(int i = 0; i < location.length; i++) {

@iOSFindBy(accessibility = location[i])
@AndroidFindBy(xpath = "//android.widget.TextView[@text='" + location[i] + "']")
locationsList.add(i);
}
for (int i = 0; i < location.length; i++) {
locationsList.get(i).click();
}
}

我假设执行此操作的正确方法与我实现的方法完全不同。

我的列表层次结构类似于以下内容;我的终点可能会因我走的分支而异:

  • 大陆 1
    • 城市 1
      • 房间 1
      • 房间 2
    • 城市 2
      • 1 号楼
        • 房间 1
        • 房间 2
      • 2 号楼
        • 房间 1
        • 房间 2

最佳答案

我现在寻找一个匹配的元素。如果我没有找到它,我会进一步滑动到列表中。如果该元素不存在,我显然会遇到问题,但在我的情况下并不是真正的问题,因为那将是一个失败的测试。

while (!driver.findElementById(currentLocation).isDisplayed()) {
driver.swipe(startX, startY, startX, endY, 100);
}
driver.findElementById(currentLocation).click();

是的,我也意识到 .swipe() 已被弃用,但它对我仍然有效,我宁愿在必要时不使用 TouchActions 重写我的所有代码。

关于java - Appium:如何遍历未知长度的 ListView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45290099/

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