2016-03-06 58 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