¿Cómo llego desde un ItemStatus UITestControl?
-
13-09-2019 - |
Pregunta
El href="http://msdn.microsoft.com/en-us/library/ms747327.aspx" rel="nofollow noreferrer"> marco tiene una clase base, AutomationElement , que tiene una propiedad, ItemStatus , que se puede utilizar para almacenar cadenas arbitrarias. Estoy tratando de conseguir que la propiedad desde el Visual Studio 2010 codificadas Análisis de interfaz de usuario clase base, UITestControl .
Solución
Mira las pruebas de interfaz de usuario codificados código para WpfControl
genera. Tiene una propiedad, NativeElement. Esta propiedad es una AutomationElement
.
public abstract class WpfControl : UITestControl
{
...
public virtual object NativeElement
{
get
{
return ((object)(this.GetProperty(UITestControlProperties.Common.NativeElement)));
}
}
...
}
Se puede escribir un método de extensión para su emisión y obtener ItemStatus.
public static string GetItemStatus(this WpfControl control)
{
var automationElement = (AutomationElement)control.NativeElement;
return automationElement.Current.ItemStatus;
}
No estoy seguro de por qué NativeElement se registra como un object
(que hace el reparto redundante captador). NativeElement todos los controles WPF son de tipo AutomationElement
. Yo sugeriría editar el código generado y simplemente llamando control.NativeElement.Current.ItemStatus
directamente.