2

UI オートメーション フレームワークには、任意の文字列を格納するために使用できるプロパティItemStatusを持つ基本クラスAutomationElementがあります。Visual Studio 2010 Coded UI Tests基本クラスUITestControlからそのプロパティを取得しようとしています。

4

1 に答える 1

3

コード化された UI テストで生成された のコードを見てくださいWpfControl。プロパティ、NativeElement があります。このプロパティはAutomationElement.

public abstract class WpfControl : UITestControl
{
    ...

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

    ...
}

それをキャストして ItemStatus を取得する拡張メソッドを作成できます。

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

NativeElement が として記録されている理由がわかりませんobject(これにより、getter キャストが冗長になります)。すべての WPF コントロールの NativeElement の型はAutomationElementです。生成されたコードを編集して、直接呼び出すことをお勧めしcontrol.NativeElement.Current.ItemStatusます。

于 2009-12-04T19:11:12.937 に答える