【WWW::Mechanize 模块用例】用程序自动填写网页表单--增加注释了

【WWW::Mechanize 模块用例】用程序自动填写网页表单--增加注释了

这两天在研究cacti软件,因为它本身没有提供用脚本批量增加设备的接口,所以我在cacti的坛子里边翻出了有人用WWW::Mechanize这个模块,自己就用了一下,还真不错。
对付一些web申请,挺好的。以极快的速度增加了上百个监控项。挺爽的也


#!/usr/bin/perl
use strict;
use WWW::Mechanize;
use Data::Dumper;
my $CACTIURL = "http://172.23.16.20/cacti/";
my $ADMINPASSWORD = "test";

#打开浏览器
my $mech = WWW::Mechanize->new();
#输入网址
$mech->get($CACTIURL);
#输入用户名密码
$mech->set_visible("admin", $ADMINPASSWORD);
#点击登陆
$mech->click;
#点击Devices连接,查看hosts列表
$mech->follow_link(text => "Devices");
#找到所有包含host.php?action=edit&id=的连接
my @links = $mech->find_all_links(url_regex => qr /host.php\?action=edit&id=/);
#依次打开每个连接的目的页面作处理
foreach my $i (@links) {

#打开连接
        $mech->get($i);
#再链接到Create Graphs for this Host指向的页面
        $mech->follow_link(text => "Create Graphs for this Host");
#选中页面内的第二个form
        $mech->form_number(2);
#得到第二个form所有的域
        my @inputs = $mech->current_form()->inputs();
        my $submitbutton;
#依次处理field类型为checkbox的,并且checkbox的name含有特定字串名字的每个域
        foreach my $input (@inputs) {
                if ($input->type eq "checkbox" && $input->name =~ /[sc]g_48/) {
#给符合条件的checkbox打勾
                        $mech->tick($input->name, "on");
                }
#找到最后一格submit的field,是一张图片的
                $submitbutton = $input if ($input->type eq "image"); # get the last one
        }
#点击那张图片,提交form,进入下一个页面
        $mech->click_button(input => $submitbutton);
#选中第一个form
        $mech->form_number(1);
#得到form所有的域
        @inputs = $mech->current_form()->inputs();
        foreach my $input (@inputs) {
                print $input->name.': '.$input->type."\n";
                if ($input->type eq "text") {
                        print "in text:".$input->name.': '.$input->type."\n";
#输入"Monitor"字符串
                        $mech->field($input->name, "MONITOR");
                }
                $submitbutton = $input if ($input->type eq "image"); # get the last one
       }
#提交form
        $mech->click_button(input => $submitbutton);
        # final create
}


修改下就能自动抢沙发了:>
支持!!!!
有注解就好了
好想让加精啊!
顶起来!学习了...
这个能看到浏览器的动作么?
我运行了一遍  浏览器都没有弹出来 没有任何的反应啊   
有用过的朋友说说有什么效果啊  能否看到浏览器的行为
为什么我在用www::mechanize这个模块时,会出现如下错误:
Can't locate object method "set_visible" via package "WWW::Mechanize" at C:\Docu
ments and Settings\yangdq\桌面\aa.pl line 13.
强悍啊
不会 javascript
全用 javascript 生成的链接怎么搞定?
看了 Mechanize 的 FAQ , 用javascript 的网页是歇菜了