2011-01-13 17 views
5

puedo ver la vista pero no puedo ver/tocar el botón dentro de ella. El botón tiene una etiqueta de accesibilidad de UIA_loginview_loginbutton con accesibilidad habilitada. ¿Por qué no se muestra en logElementTree()?¿Por qué el botón en mi opinión no puede ser visto por UIAutomation?

var target = UIATarget.localTarget(); 
var application = target.frontMostApp(); 
var window = application.mainWindow(); 
var view = window.elements().firstWithName("UIA_loginview_view"); 


UIATarget.localTarget().logElementTree(); 
UIATarget.localTarget().frontMostApp().logElementTree(); 


if(view == null || view.toString() == "[object UIAElementNil]") 
{ 
UIALogger.logFail("View not found - "+view.toString()); 
} 
else 
{ 
    UIALogger.logPass("View found - "+view.toString()); 
    UIALogger.logMessage("View Elements length - "+view.buttons().length); 
    view.buttons()["UIA_loginview_loginbutton"].tap(); 
} 

Entrar elemento del árbol: // Muestra mi punto de vista, pero no el botón en su interior

4) UIAElement [nombre: valor UIA_loginview_view: (null) NSRect: {{0, 20}, {320, 460}}]

+0

podría formatear su código usando {} en la parte superior de la ventana de edición, ¡ayuda mucho! – Axel

Respuesta

12

Asegúrese de que la propiedad de accesibilidad del botón no esté oculta por sus vistas de contenedor. Solo aquellos elementos, que deberían ser accesibles por el usuario, deben marcarse como tales. Si configura una vista de contenedor habilitada como "Accesibilidad" en Interface Builder, todos los subelementos en la jerarquía no serán visibles por UIAutomation.

¿Eso ayudó?

+0

Sí, ¡gracias! : D – Aldrich

+0

¡Gracias, me olvido de esto! – phatmann

Cuestiones relacionadas