Как получить ItemStatus из UITestControl? - PullRequest
2 голосов
/ 04 декабря 2009

Фреймворк UI Automation имеет базовый класс AutomationElement , имеющий свойство ItemStatus , которое можно использовать для хранения произвольных строк. Я пытаюсь получить это свойство из Visual Studio 2010 Кодированные тесты пользовательского интерфейса базовый класс, UITestControl .

1 Ответ

2 голосов
/ 04 декабря 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...