我使用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");
提前致谢。
答案 0 :(得分:1)
获取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