PerlでのSelenium導入メモ

お勉強中。いちいち実行方法忘れて調べるの面倒なんでメモっとく。まともなプログラム書けたら記事書く予定。

目的

  • 定期時間でのブラウザ自動操作
    • 自動クリックとか自動購入とかそんなとこ。テスト用のツールだけどそんなことはしない。

環境

Selenium Serverの立ち上げ

こいつを立ち上げて置かないとスクリプトからブラウザ操作が出来ないので、開発前に立ち上げとく

  1. 公式サイトから拾っておく
  2. コマンドプロンプトで配置ディレクトリに移動して
java -jar selenium-server-standalone-2.42.2.jar

WWW:Seleniumの導入

Perl用ライブラリ。cpanで突っ込むだけ。

これやっても、スクリプト実行時Don't locate出たらこっちで

  1. [cpan]でcpanUIに移行
  2. [force install WWW::Selenium]

テストプログラムを実行

Hachioji.pm 日めくりテックトーク様よりスクリプトをコピペして、hoge.plで保存。実行。

use strict;
use warnings;
use WWW::Selenium;

my $sel = WWW::Selenium->new(
    host => "localhost", 
    port => 4444, 
    browser => "*firefox", 
    browser_url => "http://orteil.dashnet.org/",
);

$sel->start;
$sel->open("/cookieclicker/");
while (1) {
    $sel->click("id=bigCookie");
}

Selenium Server用のページとクッキークリッカーのページが開いて、クッキー製造しまくってれば成功。終わるときはブラウザ閉じればOK。

あとは書くだけ

これから書くスクリプトの構成

大体は

  1. Seleniumインスタンスを生成(テストスクリプトのnewコピペして、browser_urlだけいじる)
  2. ブラウザ開いて、ログインページに移行
  3. ログイン
  4. ページ操作
  5. 終了

みたいな流れになると思う。ログインページ移行とログインはSelenium IDE使えば簡単に出力できるんで、ページ操作部分を重点的に勉強する。
特に特定時間に特定箇所をクリックしたり、その結果がxxだったらyyするみたいなことをやる。まあそのへんは出力ページの解析の話になるんでParserなりTreeBuilderを使えば出来るんじゃなかな、とは思ってる。

参考サイト