Как мне получить ItemStatus из UITestControl?
-
13-09-2019 - |
Вопрос
В Платформа автоматизации пользовательского интерфейса имеет базовый класс, Элемент автоматизации, который обладает свойством, 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
напрямую.