2 Stimmen

Wie bekomme ich ItemStatus von einem UITestControl?

Das UI Automation-Framework hat eine Basisklasse, AutomationElement, die eine Eigenschaft, ItemStatus, hat, die verwendet werden kann, um beliebige Zeichenfolgen zu speichern. Ich versuche, diese Eigenschaft von der Visual Studio 2010 Coded UI Tests-Basisklasse, UITestControl, zu erhalten.

3voto

Anthony Mastrean Punkte 20992

Schauen Sie sich den generierten Code der Coded UI Tests für WpfControl an. Es hat eine Eigenschaft, NativeElement. Diese Eigenschaft ist ein AutomationElement.

public abstract class WpfControl : UITestControl
{
    ...

    public virtual object NativeElement
    {
        get
        {
            return ((object)(this.GetProperty(UITestControlProperties.Common.NativeElement)));
        }
    }

    ...
}

Sie können eine Erweiterungsmethode schreiben, um sie zu casten und den ItemStatus zu erhalten.

public static string GetItemStatus(this WpfControl control)
{
    var automationElement = (AutomationElement)control.NativeElement;
    return automationElement.Current.ItemStatus;
}

Ich bin mir nicht sicher, warum NativeElement als ein object aufgezeichnet wird (was die Cast-Operation im Getter überflüssig macht). Alle WPF-Steuerelemente haben NativeElement vom Typ AutomationElement. Ich würde vorschlagen, den generierten Code zu bearbeiten und einfach control.NativeElement.Current.ItemStatus direkt aufzurufen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X