1

Windows フォームで形成された Windows アプリケーションをテストしたいと考えています。ライブラリ AutomationElements を使用することにしました。

問題は、それを適切に使用する方法がわからないことです。

例: AutomationElement で処理しているテキスト ボックスにどのように書き込むことができますか?

コードは次のようになります。

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 に User を書きたいと思います。どうすればいいですか?

本当にありがとう!

4

1 に答える 1

3

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);
}
于 2011-12-06T20:03:29.540 に答える