Wie kann ich ItemStatus von einem UITestControl bekommen?
-
13-09-2019 - |
Frage
Die UI Automation Framework eine Basisklasse hat, Automation , das eine Eigenschaft hat, ItemStatus , dass kann verwendet werden, um beliebige Zeichenfolgen zu speichern. Ich versuche, diese Eigenschaft in dem Visual Studio 2010 Coded UI Tests Basisklasse, UITestControl .
Lösung
Schauen Sie sich die Tests der codierten UI generierten Code für WpfControl
. 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, es zu werfen und bekommen ItemStatus.
public static string GetItemStatus(this WpfControl control)
{
var automationElement = (AutomationElement)control.NativeElement;
return automationElement.Current.ItemStatus;
}
Ich bin nicht sicher, warum NativeElement als object
aufgezeichnet wird (die die Getter Guss überflüssig macht). Alle NativeElement WPF-Steuerelemente sind vom Typ AutomationElement
. Ich würde den generierten Code vorschlagen Bearbeitung und einfach Aufruf control.NativeElement.Current.ItemStatus
direkt.