2011年4月30日土曜日

FireBugによるWeb操作の自動化

最近ブログを更新していないので、小ネタを紹介。

とある大手アクセス解析ツールから日別の明細を1ヵ月分(=30日分)出力することになったが、Web画面から30日分をまとめてリクエストすることができないため、次の手順を30回も繰り返すことになる。

  1. 日付入力
  2. 50個近い出力フィールドを選択
  3. 細かい出力オプションを指定
  4. 実行ボタンをクリック

集計条件を指定するためには長いプルダウンメニューをスクロールして選択する必要があるし、出力オプションを指定し忘れる可能性も高い。こんなのを間違えなく30回繰り返すことは無理だと思い、自動化することを考えた。

最初はPerlによるHTTPアクセスを考えたのだが、認証周りが複雑に実装されていたので無理そうだ。

次にSeleniumでの自動化を考えたのだが、JavaScriptやAjaxで生成されるPOSTデータは複雑怪奇だったので手に負えない。つまり、ブラウザ上でJavaScriptを実行しないといけないことに気付いた。

そこで、今まで名前だけは聞いたことがあるGreaceMonkeyなる代物を調べてみたのだが、とどのつまりはよくわからない。

もっと手軽にユーザーサイドでJavaScriptを実行する方法がないのか、と考えたときに思い出したのはFireBugのコンソール。早速、出力フィールドやオプションを選択したときに実行される関数を調べてFireBugで直接呼び出したら、マウスで選択したときと同じキューが送信されることを確認。おかげで、出力フィールドの選択を間違えることなく、30日分の出力を終えることができた。

このツールの利用者は多いだろうから欲しがる人は多いと思ったけど、サポートが面倒そうなのでやめた。でも、この考え方は他のツールにも応用できそうだ。

0 件のコメント:

コメントを投稿