最近ブログを更新していないので、小ネタを紹介。
とある大手アクセス解析ツールから日別の明細を1ヵ月分(=30日分)出力することになったが、Web画面から30日分をまとめてリクエストすることができないため、次の手順を30回も繰り返すことになる。
- 日付入力
- 50個近い出力フィールドを選択
- 細かい出力オプションを指定
- 実行ボタンをクリック
集計条件を指定するためには長いプルダウンメニューをスクロールして選択する必要があるし、出力オプションを指定し忘れる可能性も高い。こんなのを間違えなく30回繰り返すことは無理だと思い、自動化することを考えた。
最初はPerlによるHTTPアクセスを考えたのだが、認証周りが複雑に実装されていたので無理そうだ。
次にSeleniumでの自動化を考えたのだが、JavaScriptやAjaxで生成されるPOSTデータは複雑怪奇だったので手に負えない。つまり、ブラウザ上でJavaScriptを実行しないといけないことに気付いた。
そこで、今まで名前だけは聞いたことがあるGreaceMonkeyなる代物を調べてみたのだが、とどのつまりはよくわからない。
もっと手軽にユーザーサイドでJavaScriptを実行する方法がないのか、と考えたときに思い出したのはFireBugのコンソール。早速、出力フィールドやオプションを選択したときに実行される関数を調べてFireBugで直接呼び出したら、マウスで選択したときと同じキューが送信されることを確認。おかげで、出力フィールドの選択を間違えることなく、30日分の出力を終えることができた。
このツールの利用者は多いだろうから欲しがる人は多いと思ったけど、サポートが面倒そうなのでやめた。でも、この考え方は他のツールにも応用できそうだ。
0 コメント:
コメントを投稿