0

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

提前致谢。

4

1 回答 1

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

于 2015-10-27T17:49:58.577 回答