【问题标题】:Selecting element from dropdown menu using WWW::Mechanize in Perl在 Perl 中使用 WWW::Mechanize 从下拉菜单中选择元素
【发布时间】:2015-09-29 15:55:39
【问题描述】:

我正在尝试编写一个从下拉菜单中选择值并提交表单以访问下一页的小程序,这是 HTML 页面的 sn-p:

<form name='formulaire' method='post' action=''>
<select class="sel_box" name="MENU" >

<option value='val1' SELECTED >value1</option>
<option value='val2'  >value2</option>
<option value='val3' >value3</option>
</select>
<input type='image' value='' src='ok.gif' border='0'>
<input type=hidden name='numTab' value='3'>
</form>

我使用 select() 和 submit() 如下:

use strict;
use warnings;
use WWW::Mechanize::Firefox;

my $mech = WWW::Mechanize::Firefox->new();

$mech->get_local('test.html');
$mech->select('MENU', 'val3');
$mech->submit();

我得到了这个

没有找到 .//*[(local-name(.)="input" or local-name(.)="select" or local-name(.)="textarea") 和 @name= 的元素"菜单"]

我做错了什么?

非常感谢

【问题讨论】:

  • 也许先选择一个表格? $mech-&gt;form_name('formulaire');
  • 这看起来像是 $mech->xpath 方法的错误。您是在代码中的其他地方调用它吗?

标签: perl www-mechanize


【解决方案1】:

我得到一个不同的错误:

I don't know which form to submit, sorry.

这可以通过在get_local 之后添加以下行来轻松解决:

$mech->form_name('formulaire');

【讨论】:

    猜你喜欢
    • 2016-12-18
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多