【问题标题】:Select Random UIACollectionCell using Appium使用 Appium 选择随机 UIACollectionCell
【发布时间】:2016-07-20 10:34:23
【问题描述】:

我正在尝试在 iOS 设备上执行自动化。在一次场景中,我有 UIACollectionCell 这是一个列表视图。反正有没有用Appium+Java,每次运行测试都可以随机选择Cell。

【问题讨论】:

    标签: java ios selenium-webdriver appium uicollectionviewcell


    【解决方案1】:

    这样的事情应该可以解决问题:

    List<MobileElement> elements = driver.findElements(By.xpath("//UIACollectionView[1]/UIACollectionCell"));
    Random rnd = new Random();
    int rndInt = rnd.nextInt(elements.size());
    elements.get(rndInt).click();
    

    带有 findElements() 的元素列表是使用与第一个 UIACollectionView(使用索引 [1] 指定)和其中的所有 UIACollectionCell 元素匹配的查询创建的。这应该会为您提供指定 UIACollectionView 内所有 UIACollectionCell 元素的列表。

    对于更精确的查询,您还可以使用:

    List<MobileElement> elements = driver.findElements(By.xpath("//UIAApplication[1]/UIAWindow[1]/UIACollectionView[1]/UIACollectionCell"));
    

    【讨论】:

    • 谢谢,会试试这个
    • 我收到以下错误 java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
    • 在这种情况下,List 没有任何 UIACell 元素。您是否检查过我的 xpath 查询是否与您的应用匹配?我猜到了这些查询,但如果您愿意,您还可以通过打印driver.getPageSource(); 的内容并将其编辑到您的问题中来共享应用程序结构。然后我可以编辑查询以匹配。
    • 您是否能够复制 UIACollectionCell 的完整 Xpath 以及您想要与之交互的 UIACell 元素之一?您可以通过 Appium Inspector 检查应用程序来找到完整的 Xpath。
    • 这是第一个 Collection Cell 的实际 xpath。 { //UIAApplication[1]/UIAWindow[1]/UIACollectionView[1]/UIACollectionCell[1] }
    猜你喜欢
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-04
    相关资源
    最近更新 更多