2011-06-28 8 views
5

Todos UI Automation examples He visto utiliza componentes estándar cuyo estado se puede inspeccionar con la API de JavaScript utilizando el método value(). Esto es un poco limitante. Digamos que quieres verificar el color o valor alfa y otras cosas.¿Cómo verificar las propiedades de los elementos en la automatización de la GUI de iOS?

¿Cómo puedo inspeccionar las propiedades de una vista?

Un ejemplo: un toque en un elemento determinado debería hacerlo "seleccionado". Me gustaría realizar un toque en él y luego verificar que isSelected es TRUE.

Actualización:

He encontrado el método withPredicate() que debe hacerlo en teoría, excepto que parece desencadenar sólo en name propiedades:

element.withPredicate("isSelected == YES")   // always fails 
element.withPredicate("name matches 'my element'") // works 

Respuesta

6

terminé con este enfoque, que trabaja para mis propósitos:

Permitir que UIView.accessibilityValue devuelva una cadena JSON con propiedades relevantes:

- (NSString *)accessibilityValue 
{ 
    return [NSString stringWithFormat: 
      @"{'alpha':%f, 'isSelected':%@}", 
      self.alpha, self.isSelected ? @"true" : @"false"]; 
} 

Luego use eval() en el código de prueba y verifique esas propiedades. value() es una abreviatura para llamar a accessibilityValue:

var props = eval("(" + element.value() + ")"); 

if (props.isSelected) { 
    UIALogger.logFail("Should not be selected"); 
} 

UIATarget.localTarget().tap({"x":471, "y":337}); 

var props = eval("(" + element.value() + ")"); 

if (!props.isSelected) { 
    UIALogger.logFail("Should be selected"); 
} 
Cuestiones relacionadas