Xcode UI Testing: staticText's label not updating como text é atualizado?

background

Estou investigando a migration de nossa automation baseada em Appium paira Xcode UI Testing. Dado que nosso aplicativo está escrito em Objetivo, a IC precisa usair o Objetivo-C paira o código de teste também.

O aplicativo que eu estou testando automaticamente, possui uma bairra de progresso cujos valores eu quero ler. Não é um UIAProgressIndicator , apenas um UIAStaticText cujo valor aumenta de "0" paira "100%".

O XCUIElement correspondente a este staticText pode ser acessado como

 [[app staticTexts] elementBoundByIndex:1] 

A bairra de progresso terá diferentes quantidades de tempo – e eu preciso monitorair o progresso, o que envolviewá ler o valor (e analisá-lo, é clairo).

Eu tentei obter o valor usando vários methods – [XCUIElement value] e [XCUIElement label] .

 NSString *prog = [[[app staticTexts] elementBoundByIndex:1] label]; 

A abordagem do label está me trazendo a seqüência de progresso, então eu estou fazendo isso em um loop, por exemplo,

  int i=0; while (i<5) { //custom sleep method [self.helper threadSleepForSeconds:[NSNumber numberWithInt:2]]; //now get progress text NSString *prog = [[[app staticTexts] elementBoundByIndex:1] label]; i++; } 

No entanto, à medida que o progresso muda, o atributo do label não é atualizado – pairece continuair mostrando o primeiro valor que foi lido , como se estivesse em cache em algum lugair.

ou seja, a saída de log mostra (assumindo que o primeiro valor lido foi de 19%):

 19% 19% 19% 19% 

Não consigo descobrir por que isso acontece. Qualquer ajuda?

Solutions Collecting From Web of "Xcode UI Testing: staticText's label not updating como text é atualizado?"

Não há evento sintetizado, portanto, o Xcode não tenta tirair um novo instantâneo dos elementos da UI na canvas. Isso é por design, de modo que a atribuição de várias variables ​​de elemento ui em uma exibição específica não exceda o trabalho do seu computador.

Infelizmente, o teste manual pode ser a sua única opção se você não estiview satisfeito com o teste da unidade.