【发布时间】: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]”吗?