работа с автоматическим элементом - PullRequest
1 голос
/ 14 июня 2011

Я хочу протестировать приложение 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 Ответ

3 голосов
/ 07 декабря 2011

Использование 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);
}
...