2012-08-31 73 views
7

Estoy haciendo algunas pruebas de automatización de C#/UI con White y tengo problemas con con algo. Tengo un DataGridView en la aplicación y configuré los colores de fondo de manera diferente dependiendo del estado de la aplicación. Quiero verificar estos colores durante las pruebas con blanco, pero tengo problemas para hacerlo.Accediendo a celdas de DataGridView a través de Blanco

Esto es lo que estoy tratando de hacer funcionar. Puedo obtener la vista de cuadrícula, pero solo como una tabla. Luego, tengo problemas más adelante porque termino con TableCells en lugar de DataGridViewCells.

var Table = MainWindow.Window.Get<Table>("DataGridViewName"); 
var Row = Table.Rows[0]; 
var Cell = Row.Cells[0]; 
//invalid 
//var Color = Cell.Style.BackColor; 

¿Alguien se ha encontrado con esto antes o tiene alguna sugerencia?

+0

Por qué no puedes hacerlo de esta manera: MainWindow.Window.Get Marty

+0

Hmmm, tal vez estoy en una versión anterior de blanco, pero no puedo encontrar un componente DataGridView blanco hace eso?. compilar para usted? – sshannin

+2

Si la aplicación es suya, puede mejorar su soporte de UI Automatización/capacidades para tener una mejor integración con White (que creo que utiliza la automatización de la interfaz de usuario para hacer la mayor parte de su trabajo) –

Respuesta

1

¿Está seguro de que el color de fondo está expuesto a través de la automatización de UI? Desde la codificación de automatización de IU de bajo nivel que he hecho, nunca he visto una propiedad de este tipo. Acabo de abrir Inspección (similar a UISpy) y apunté a un DataGridView en una aplicación C# WinForms, y ninguna de esas propiedades queda expuesta.

Por lo tanto, dado que no parece estar expuesto, no hay forma de resolverlo a través de la automatización, salvo capturar una imagen y compararla con una línea base con algún umbral (parece un desastre).

A menos que pueda de alguna manera incrustar la información en alguna otra propiedad de automatización (lo que requeriría cambiar la aplicación bajo prueba), no veo ninguna manera de hacerlo. :(

+0

Sí, esa es la conclusión a la que llegué también. Terminé agarrando la imagen visible del área definida por el elemento y mirando sus píxeles reales (básicamente como sugirió). – sshannin

Cuestiones relacionadas