Células UIACollectionView vs visibleCells

Estou tentando escrever um script de teste usando automação no xcode 4.5.

eu tenho umUICollectionView e eu quero clicar em alguma célula não visível no momento.

Por documentação, Eu deveria esperarcells para retornartodos células na vista de coleção, evisibleCells para retornar apenas os visíveis atualmente.

Em vez disso, o que estou vendo é que as células retornam apenas as células visíveis no momento e chamar visibleCells para o script em'undefined' is not a function (evaluating 'collection.visibleCells()')

var target = UIATarget.localTarget();
var collection = target.frontMostApp().mainWindow().collectionViews()[0];

UIALogger.logMessage("Looking in collection: " + collection);
UIALogger.logMessage("Cells: " + collection.cells() + " length " + collection.cells().length);
UIALogger.logMessage("Visible cells: " + collection.visibleCells());

O código acima retorna o direitoUICollectionView, a segunda linha de log imprime:

Cells: [object UIAElementArray] length 12

embora eu tenha 100 itens na exibição de coleção e o terceiro script de falha de linha de log.

Este é um bug de documentação / UIACollectionView?

Alguma idéia de como posso dizer à automação para rolar até ver uma célula com o nome "My cell"? Eu tentei usarsomeCell.scrollToVisible, mas eu preciso ter o celular para fazer isso, e eu não desde que eu não posso obtê-lo a partir de células.

EDITAR:

Como sugerido por Jonathan, eu implementei uma função scroll-till-found. é um pouco específico de implementação, então você provavelmente precisará ajustarisCellWithName. Eu também estou olhando para adicionar uma pausa no caso de não encontrarmos a célula necessária no loop while, se alguém tiver ideias, sinta-se à vontade para editá-la.

function isCellWithName(cell, name) {
    return (cell.staticTexts()[0].name() == name);
}

function getCellWithName(array, name) {
    for (var i = 0; i < array.length; i++) {
        if (isCellWithName(array[i], name)) {
            return array[i];
        }
    }
    return false;
}

function scrollToName(collection, name) {
    var found = getCellWithName(collection.cells(), name);
    while (found === false) {
        collection.dragInsideWithOptions({startOffset:{x:0.2, y:0.99}, endOffset:{x:0.2, y:0},duration:1.0});
        found = getCellWithName(collection.cells(), name);
    }
    return found;
}

questionAnswers(2)

yourAnswerToTheQuestion