電子書籍の厳選無料作品が豊富!

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は実行できないのでしょうか?
お知恵をお貸しいただけませんでしょうか。

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

A 回答 (1件)

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



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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!