Como faço para obter ItemStatus de um UITestControl?
-
13-09-2019 - |
Pergunta
O href="http://msdn.microsoft.com/en-us/library/ms747327.aspx" rel="nofollow noreferrer"> quadro tem uma classe base, AutomationElement , que tem uma propriedade, ItemStatus , que pode ser usado para armazenar cadeias arbitrárias. Eu estou tentando obter essa propriedade da Visual Studio 2010 Coded UI Testes de classe base , UITestControl .
Solução
Olhe para a interface do usuário codificado Testes gerado código para WpfControl
. Ele tem uma propriedade, NativeElement. Esta propriedade é um AutomationElement
.
public abstract class WpfControl : UITestControl
{
...
public virtual object NativeElement
{
get
{
return ((object)(this.GetProperty(UITestControlProperties.Common.NativeElement)));
}
}
...
}
Você pode escrever um método de extensão para lançá-lo e obter ItemStatus.
public static string GetItemStatus(this WpfControl control)
{
var automationElement = (AutomationElement)control.NativeElement;
return automationElement.Current.ItemStatus;
}
Eu não sou certo porque NativeElement é registrado como um object
(o que torna a redundante elenco getter). NativeElement todos os controles WPF são do tipo AutomationElement
. Eu sugeriria editar o código gerado e simplesmente chamando control.NativeElement.Current.ItemStatus
diretamente.