こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

WWW::Mechanizeについて教えてください

WWW::Mechanizeついて

質問させて頂きます。
他でも質問しておりますが、回答が無かったためマルチですがご了承ください。



WWW::Mechanizeを使ってログインしようとしてるのですが、うまく行きません。

<form action="login.cgi" name="form1" method="post">
<input id=id name='id' type='text' />
<input id=pass name='pass' type='text' />
<input type="submit" name="submit" value="LOGIN" />

上記のフォームでは正常に取得できます。

しかし、ログインチェックをJavascriptからPHPに渡ってるページでの
ログインがうまく行きません。

ソース

//入力チェック
/*login_checkたとえです*/
function LOGIN(){
$( "userid" ).className = "";
$( "userpassword" ).className = "";
if( login_check( "id" ) ){

if( login_check( "pass" ) ){

document.form1.action = "login.php";
document.form1.Btn_Type.value = "login";
document.form1.submit();

}else{
$( "pass" ).className = "error";
}
}else{
$( "id" ).className = "error";
}
}

<form action="login.php" name="form1" method="post">
<input id=id name='id' type='text' />
<input id=pass name='pass' type='text' />
<input type="button" name="loginbtn" value="LOGIN" onclick='JavaScript:LOGIN();'/>

上記のフォームにログインしようと下記のようにしました。
my $loginUrl = 'http://hoge.jp/login.php';
my $mech = WWW::Mechanize->new(cookie_jar => $cookie_jar);
$mech->agent_alias('Windows IE 6');
$mech->get($loginUrl);
$mech->form_name('form1');
$mech->field( id => "test" );
$mech->field( pass => "test" );
$mech->click_button( value => 'Login' );
print $mech->content();

これで実行するとエラーがでます。
Can't call method "header" on an undefined value at /usr/lib/perl5/site_perl/5.8.8/WWW/Mechanize.pm line 2471.

$mech->click_button( value => 'Login' );
上記のclick_buttonでvalueを指定するとエラーになります。

WWW::MechanizeはJavascriptは実行できないのでしょうか?
お知恵をお貸しいただけませんでしょうか。

説明不足かもしれませんがお願い致します。

投稿日時 - 2012-06-08 00:36:09

QNo.7520648

すぐに回答ほしいです

質問者が選んだベストアンサー

>WWW::MechanizeはJavascriptは実行できないのでしょうか?

そうですね。
Javascriptでやっていることと同等のことを自分でプログラムする必要があります。

投稿日時 - 2012-06-08 07:45:43

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問