2

UI 自动化框架有一个基类AutomationElement,它有一个属性ItemStatus,可用于存储任意字符串。我正在尝试从 Visual Studio 2010 Coded UI Tests基类UITestControl获取该属性。

4

1 回答 1

3

查看 Coded UI Tests 为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 cast 变得多余)。所有 WPF 控件的 NativeElement 都是AutomationElement. 我建议编辑生成的代码并直接调用control.NativeElement.Current.ItemStatus

于 2009-12-04T19:11:12.937 回答