如何使用WWW :: Mechanize单击具有其值的按钮

时间:2016-03-06 21:45:41

标签: perl www-mechanize

我正在尝试使用带有Mechanize模块的Perl脚本单击一个按钮。但是,按钮的名称和位置总是会改变,所以我想通过使用它的值来点击它,但我找不到如何做到这一点。

按钮是这样的:

<input class="submit good" name="R_HCWE" value="CLICK HERE" type="submit">

我不能简单地使用submit()方法,因为还有另一个按钮来提交属于类的表单&#34;提交错误&#34;。

1 个答案:

答案 0 :(得分:3)

使用find_all_submits方法查找按钮,然后单击它:

#!/usr/bin/perl
use warnings;
use strict;
use feature qw{ say };

use WWW::Mechanize;

my $mech = 'WWW::Mechanize'->new;
$mech->get('http://search.cpan.org/perldoc/WWW::Mechanize');
$mech->update_html(<< '__HTML__');

<html>
<body>
<form action="/1.pl">
<input class="submit bad" name="R_ACWE" value="DO NOT CLICK HERE" type="submit">
<input class="submit good" name="R_HCWE" value="CLICK HERE" type="submit">
<form>
</body>
</html>

__HTML__

my $button = ($mech->find_all_submits(class => 'submit good'))[0];
say $button->class;