1

Je veux tester une application Windows qui est formée avec Windows Forms. J'ai décidé de travailler avec la bibliothèque automationelements.Travailler avec automationelement

Le problème est que je ne sais pas comment l'utiliser propertle. Par exemple: Comment puis-je écrire dans une zone de texte que je gère avec automationelement?

Le code est comme:

 var processStartInfo = new ProcessStartInfo(SATELITE_PATH); 
     var pSatelite = Process.Start(processStartInfo); 
     pSatelite.WaitForInputIdle(); 
     Delay(2); 
     satelite = AutomationElement.RootElement.FindChildByProcessId(pSatelite.Id); 
     AutomationElement loginUser = satelite.FindDescendentByIdPath(new[] {"frmLogin", "txtUserName"}); 

Je veux écrire l'utilisateur dans le LoginUser. Comment puis-je le faire?

Vraiment merci!

Répondre

3

Utilisation ValuePattern:

var processStartInfo = new ProcessStartInfo(SATELITE_PATH); 
var pSatelite = Process.Start(processStartInfo); 
pSatelite.WaitForInputIdle(); 
Delay(2); 
satelite = AutomationElement.RootElement.FindChildByProcessId(pSatelite.Id); 
AutomationElement loginUser = satelite.FindDescendentByIdPath(new[] {"frmLogin", "txtUserName"}); 

if (loginUser != null) 
{ 
    ValuePattern valPattern = loginUser.GetCurrentPattern(ValuePattern.Pattern) as ValuePattern; 
    valPattern.SetValue(username); 
}