Selenium2に関するエントリを2つ書いてみたけど、せっかくなので「Selenium2.x で Ajax なWebアプリケーションをテストしよう ~ Facebook の自動あいさつ返答機能を実装 ~」で紹介されている機能のPerl実装を書いてみた。
指定されたフレンドにPokeする処理のPerl実装
#!/opt/local/bin/perl use strict; use warnings; use Selenium::Remote::Driver; use Getopt::Long; my $user = undef; my $password = undef; my $friend = undef; my $option = GetOptions( "user=s" => \$user, "password=s" => \$password, "friend=s" => \$friend, ); if (!$user || !$password || !$friend) { die 'You must specify -user, -password and -friend.'; } my $driver = Selenium::Remote::Driver->new( browser_name => 'firefox', ); my $elem = undef; # Facebook ログイン画面表示 $driver->get('https://www.facebook.com/'); $elem = $driver->find_element('email', 'id'); $elem->send_keys($user); # ID/Password入力 $elem = $driver->find_element('pass', 'id'); $elem->send_keys($password); $elem = $driver->find_element('login_form', 'id'); $elem->submit; # Friendのページを表示 $driver->get("https://www.facebook.com/$friend"); # poke実行 $elem = $driver->find_element('/html/body/div[3]/div/div/div[2]/div/div/div[2]/div/div/div[3]/div/a', 'xpath'); $elem->click; $elem = $driver->find_element('/html/body/div[3]/div/div/div[2]/div/div/div[2]/div/div/div[3]/div/div/div/ul/li[2]/a', 'xpath'); $elem->click; $driver->set_implicit_wait_timeout(5000); $elem = $driver->find_element('pk01', 'name'); $elem->click; $driver->set_implicit_wait_timeout(5000);
以上です。