我正在使用Firefox::Mechanize抓取一个网站。我被困在一个下拉菜单,它有一个onchange事件与它相关联。
我能够从下拉菜单中选择我想要的选项,并且我能够验证这一点,因为下拉菜单现在显示了我选择的选项。但它不会触发与之相关的onchange事件。
我想我可能需要一个"点击"事件后选择我的选项,但我不确定究竟如何纳入。
这是HTML的位:
<select class="" id="select20279" name="20279" onchange="selectAction(this, this.options[this.selectedIndex].value, '20279');">
<option value="">please choose</option>
<option value="edit">Edit</option>
<option value="view">View</option>
<option value="delete_now">Delete</option>
</select>
下面是我的脚本:
use WWW::Mechanize::Firefox;
my $mech = WWW::Mechanize::Firefox->new( tab => 'current', autoclose => 0 );
$mech->get('http://www.mywebsite.com/');
$mech->select("20279", "view");
获取DOM元素,然后将更改或单击事件发送给它:
my $select = $mech->selector('#select20279', only => 1);
$select->__change();
# or
$select->__click();
参见
http://search.cpan.org/corion/MozRepl - remoteobject 0.39/lib/MozRepl/RemoteObject.pm