0

如果我们要将 TableView 中的所有单元格放入一个数组并遍历它以单击元素。我正在寻找快速的解决方案。

4

2 回答 2

1

如果每个单元格都有不同的因素,那么你会得到一个数组。要使用文本字符串,我必须先获取单元格。所以这导致 - 如何获得单元格的计数并在获得单元格之后,向下钻取以查看这是否是文本,然后打开上下文菜单,否则做一些事情。

以下是您可以执行的操作: 继续在单元格上使用 'atIndex:'。使用 selectElementWithMatcher::withError。循环直到你找到 indexOutOfBoundsError 然后你应该有文本。

但是使用 atIndex: 循环时,您应该拥有所需的单元格。并做同样的事情,见下文:

for (int i = 0; i < someLargeValue; i++) {
 EarlGrey.selectElementWithMatcher(grey_accessibilityID("abc")).atIndex(i)
}

-> 好的,要获取“someLargeValue”的值,请使用 selectElementWithMatcher::withError。循环直到你找到 indexOutOfBoundsError 然后你应该有文本。

于 2016-10-24T07:47:48.050 回答
0

这可以通过实现自定义GREYAssertionBlock来实现UITableView

func assertTableView(_ accessibilityID: String, hasRowCount rowCount: Int, inSection section: Int) {
    let cellCountAssert = GREYAssertionBlock(name: "cell count") { (element, error) -> Bool in
        guard let tableView = element as? UITableView, tableView.numberOfSections > section else {
            return false
        }
        let numberOfCells = tableView.numberOfRows(inSection: section)
        return numberOfCells == rowCount
    }

    EarlGrey.selectElement(with: grey_accessibilityID(accessibilityID)).assert(cellCountAssert)
}
于 2019-12-10T14:08:06.860 回答