【问题标题】:How to find UIATableView child elements with UIAutomation predicate?如何使用 UIAutomation 谓词查找 UIATableView 子元素?
【发布时间】:2016-01-16 05:37:34
【问题描述】:

我正在使用 Appium(基于 Selenium)为我的 iOS 应用编写 UI 测试。

我的问题是按照它们出现的顺序查找 UITableView 的所有单元格和组。

例如,这个结构表示第一组打开的表:
UIATableGroup
--UIATableCell
--UIATableCell
--UIATableCell
--UIATableCell
UIATableGroup
UIATableGroup
UIATableGroup
UIATableGroup

我可以通过使用 xpath 获得上述顺序的列表:

driver.findElements(By.xpath("//UIAApplication[1]/UIAWindow[1]/UIATableView[1]/*"))

问题是 xpath 非常慢,所以我一直在使用 iOS UIAutomation 调用重构代码。

我可以使用这个谓词获得所有组:

driver.findElements(MobileBy.IosUIAutomation(".tableViews()[0].groups()[0]"))

以及所有带有这个的单元格:

driver.findElements(MobileBy.IosUIAutomation(".tableViews()[0].cells()[0]"))

但问题是我想同时保留上面的顺序。

暗中猜测:

driver.findElements(MobileBy.IosUIAutomation(".tableViews()[0].withPredicate(\"ALL valid == true\")"));

这个想法是利用组和单元格都有一个“有效”字段的事实,但这只会使测试崩溃。

如何获得与 xpath 相同的 UIAutomation / 谓词?

【问题讨论】:

  • 快问:你试过“.tableViews()[0]”吗?

标签: java ios selenium xpath


【解决方案1】:

经过一番猜测,我能够想出这个:

driver.findElements(MobileBy.IosUIAutomation(".tableViews()[0].elements()"))

它仍然很慢,但它可以工作。

【讨论】:

    猜你喜欢
    • 2014-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多