Работа с автоматическим элементом
Я хочу протестировать приложение Windows, которое сформировано с помощью Windows Forms. Я решил поработать с элементами автоматизации библиотеки.
Проблема в том, что я не знаю, как правильно его использовать. Например: Как я могу написать в текстовом поле, которое я обрабатываю с помощью элемента автоматизации?
Код похож на:
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"});
Я хочу написать пользователя в loginUser. Как мне это сделать?
Большое спасибо!
1 ответ
Используйте 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);
}