Windows の GUI操作に White というライブラリを使う。
ググりやすい名前で、目的のものに達するのに時間がかかる。 site: とか付けて探すことが多い。
http://teststack.azurewebsites.net/white/index.html
https://github.com/TestStack/White
旧
http://white.codeplex.com/
nuget で White を入れて参照して次のようなのを使っている。
サンプルとして、スタートメニューからcmd.exeを立ち上げてなんかコマンドを入力して実行するソース(C#)を載せる。
これは Jenkins のWindowsバッチから vmrun を使って VMware Player を立ち上げると、そのJOBが終ると同時にVMware Playerも死ぬので、こうやってムリやり vmrun している。
タスクバー隠すようにしている場合は、マウスカーソルを一番下とかに一度持っていって Sleepを入れる…。
var desktop = Desktop.Instance;
var startButton = desktop.Get(SearchCriteria.ByText("スタート"));
startButton.Click();
var startMenu = desktop.Get(SearchCriteria.ByText("スタート メニュー"));
var run = startMenu.Get(SearchCriteria.ByText("ファイル名を指定して実行..."));
run.Click();
var ws = desktop.Windows();
var w = ws.Find(x => x.Name == "ファイル名を指定して実行");
Thread.Sleep(1000);
var edit = w.Get(SearchCriteria.ByText("名前(O):").AndControlType(ControlType.Edit));
edit.Enter("cmd.exe");
w.Get(SearchCriteria.ByText("OK")).Click();
Thread.Sleep(1000);
var keyboard = Keyboard.Instance;
keyboard.Enter("echo Hello World!");
White は GUI色々動かせて便利。Silverlightの中も見れて動かせる。
ところでESXi 使いたい。