スクリプトによるIE自動操作

IEを起動して、必要事項を入力するといったルーチン作業が面倒なので、スクリプトを作成すべくいくつか検証。

以前作成した、GoogleMap上で位置情報の付与されたtweetを検索するアプリでは、地名と検索範囲を入力して検索するので、「地名の入力」、「半径の入力」、「検索ボタンをくりっくする」という3つの作業を自動化するスクリプトを作成して試してみた。

// 設定
var g_place  = "仙台";
var g_radius = "2";

// IE起動
var ie = WScript.CreateObject("InternetExplorer.Application");
ie.Navigate("http://1-dot-tweet-on-gmap.appspot.com/displayTweet");
ie.Visible = true;
waitIE(ie); // アクセス完了まで待つ。

//地名を自動設定
//$("#address").value = g_place;
ie.document.querySelector("input[id='address']").value = g_place;

//半径を自動設定
$("#radius").value = g_radius;
WScript.Sleep(100);

//検索ボタンを押す
$("#test").click();
waitIE(ie);

//*****以下、関数定義******//
// IEがビジー状態の間待つ
function waitIE(ie) {
  while(ie.Busy || ie.readystate != 4) {
    WScript.Sleep(100);
  }
  WScript.Sleep(1000);
}

// 特定の要素を得る
function $(id) {
  return ie.document.querySelector(id);
}

期待通りの動作をした。

ただ、サイトによっては正常に動作しない・・・。

原因が分からない。HTMLの記述方法が悪いのかな。