如何在Firefox :: Mechanize中触发onchange事件?

时间:2015-10-27 16:22:47

标签: html perl web-scraping onchange www-mechanize-firefox

我使用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");

提前致谢。

1 个答案:

答案 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