更改HTML :: Form中的选定选项

时间:2014-03-25 13:11:43

标签: html forms perl http

我正在处理自动表单提交脚本。它正在登录供应商的网站并填充表单的字段。在尝试提交时,所需的结果将是显示的票号,即确认表单已提交并且请求由其帮助台处理。

然而,表单未正确提交(未显示确认),我怀疑它是由其中一个输入引起的。

以下是我用来设置此字段的代码:

$forms[3]->value('ProductList','-2');

不幸的是,这对预备表格没有影响,倾销$表格[3],我看到了:

 [...]
    bless({
     'onchange' => ' checkKC(document.all.ProductList, \'~0\'); prodExpand();',
     'current' => 1,
     'menu' => [
      {
         'seen' => 1,
         'value' => '~0',
         'name' => '<Please select>'
      },
      {
         'seen' => 1,
         'value' => '-2',
         'name' => 'Product not found.... Search more'
      },
      {
         'value' => '-1',
         'name' => '------------------------------------'
      },
      {
         'value' => 'Product1',
         'name' => 'Product 1 Name'
      }
     ],
     'name' => 'ProductList',
     'id' => 'ProductList',
     'idx' => 1,
     'type' => 'option'
    }, 'HTML::Form::ListInput' ),
 [...]

我是否使用了$ forms [3]的正确方法? (它是由HTML :: Form-&gt; parse($ pageresult)btw创建的)或者我应该尝试其他方法吗?我无法找到HTML :: Form :: ListInput

的任何文档

感谢您的任何建议

1 个答案:

答案 0 :(得分:1)

考虑将WWW::Mechanize用于需要多个步骤的表单处理。这样,您可以在脚本中包含登录过程以及转到表单,当然也可以获得结果。

或者,如果您需要使用JavaScript,请使用WWW::Mechanize::Firefox