Вопрос

В Платформа автоматизации пользовательского интерфейса имеет базовый класс, Элемент автоматизации, который обладает свойством, ItemStatus ( ИтемСтатус ), который может быть использован для хранения произвольных строк.Я пытаюсь получить это свойство из Visual Studio 2010 Закодированные тесты пользовательского интерфейса базовый класс, UITestControl ( Пользовательский контроль ).

Это было полезно?

Решение

Посмотрите на закодированные тесты пользовательского интерфейса, сгенерированные кодом для 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 (что делает приведение геттера избыточным).Все элементы управления WPF nativeElement имеют тип AutomationElement.Я бы предложил отредактировать сгенерированный код и просто вызвать control.NativeElement.Current.ItemStatus напрямую.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top