名無しの投稿で無名フォームにwww :: mechanizeでログインしてください

私は、 http://site/signin/index.phpのようなWebサイトにperlでログインしたい(安定している) a>。 このページにはフォームがあり、名前なしで送信します。 どうすればログインできますか? これはログインするためのコード例です:

my $mech = WWW::Mechanize->new();
$mech -> cookie_jar(HTTP::Cookies->new());
$mech -> get($login_url);
$mech -> form_name('theform');
$mech -> field ('username' => $username);
$mech -> field ('password' => $password);
$mech -> click ('log in');
print $mech-> content();

これは私の形です

<form method="post" action="">
<table id="regform" cellspacing="5">
<tr>
<td class="regparam">email:</td>
<td><input type="text" name="email" value="" tabindex="1" maxlength="100" style="font-family: Tahoma; font-size: 10pt;  font-weight: bold; border: 1px solid #9AD7F8; background-color: #ffffff" class="reginp" /></td>
</tr>
<tr>
<td class="regparam">password:</td>
<td><input type="password" name="password" value="" tabindex="2" maxlength="100" style="font-family: Tahoma; font-size: 10pt;  font-weight: bold; border: 1px solid #9AD7F8; background-color: #ffffff"  class="keyboardInput" /></td>
</tr>
<tr>
<td></td>
<td valign="middle">
<button type="submit" style="font-weight:bold; tabindex="4" class="subm-posts">login</button>

</td>
</tr>
</table>
</form>
0
関連するHTMLを表示します。
追加された 著者 daxim,

2 答え

名前でフォームを参照する代わりに、番号、つまりフォームに表示される場所:

$mech->form_number( 1 );

フォーム番号は1から始まります。

同様に、 1つのボタンを使用すると、

$mech->click( );

ボタンをクリックするとフォームが送信されます。

1
追加された
本当にありがとうマーティン
追加された 著者 thi,
my $mech = WWW::Mechanize->new();
$mech->cookie_jar( HTTP::Cookies->new() );
$mech->get($login_url);

$mech->submit_form(
    form_name => 'theform',
    fields    => {
        username => $username,
        password => $password,
    },
);

print $mech->content();
0
追加された
@ sali444正しい答えを得るための正しいコードを投稿してください。後で編集すると、以前に投稿された回答は変更されません。
追加された 著者 Pradeep,
タイトルを読んで答えを送ってください!
追加された 著者 thi,