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 .

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top