2016-03-06 55 views
2

我想单击一个按钮,使用一个Perl脚本与机械化模块。然而,按钮的名称和位置总是在变化,所以我想通过使用它的值来点击它,但我找不到如何去做。如何点击一个按钮,它的值与WWW :: Mechanize

按钮是这样的:

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

我不能用简单的方法submit(),因为还有另外一个按钮提交属于类的窗体“提交坏”。

回答

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; 
+0

你好,$输入刚刚返回我的按钮数量属于这一类。当我打印它时,它显示1 – ccca

+0

@ccca:检查更新。 – choroba

+0

我很抱歉再次提问,但在网站中,按钮总是改变位置,所以有时我点击右键,但有时候错了,我尝试了$ mech-> find_all_submits(value =>'CLICK HERE') )[0];也是,但没有奏效。 – ccca