【问题标题】:WWW::Mechanize- Select from drop down listWWW::Mechanize- 从下拉列表中选择
【发布时间】:2016-12-18 13:27:07
【问题描述】:

我正在尝试使用 WWW::Mechanize 从下拉菜单中选择一个选项。这是我现在拥有的代码(只有从下拉菜单中选择的部分):

use warnings;
use WWW::Mechanize;
my $url = 'http://genome.ucsc.edu/cgi-bin/hgBlat?command=start';
my $browser = WWW::Mechanize->new();
  $browser->get($url);
    $browser->select('db', 'hg38');
    $browser->submit();

选择无效。

这是我手动选择所需选项的站点中此下拉菜单的 HTML:

<select name="db"> = $0
     <option selected value="hg38">Dec. 2013 (GRch38/hg38)</option>
     <option value="hg19">Feb. 2009 (GRch17/hg19)</option>
     <option value="hg18">Mar. 2006 (NCBI36/hg18)</option>
     <option value="hg17">May 2004 (NCBI35/hg17)</option>
     <option value="hg16">July 2003 (NCBI34/hg16)</option>
</select>

如何使用机甲来选择选项?相关网站的网址是“http://genome.ucsc.edu/cgi-bin/hgBlat?command=start”。

【问题讨论】:

    标签: html perl www-mechanize


    【解决方案1】:

    您应该总是 use strict 在您编写的每个 Perl 程序的顶部,尤其是在寻求代码帮助之前。它会立即揭示问题

    您的WWW::Mechanize 对象在$browser 中,但您调用了$mech-&gt;select$mech 尚未定义,因此您收到一条错误消息,指出无法在未定义的值上调用 select

    【讨论】:

    • 啊哎呀,应该使用严格的。但是,即使将 $mech 更改为 $browser,仍然没有进行选择。没有错误,但是我的代码在页面上的其他地方按下提交后吐出了 URL,结果是下拉选择仍然不起作用。
    • @AdityaJ.:使用$browser-&gt;dump_forms 查看页面上表单的状态,以便您检查您的选择是否有效。您可能需要使用其中一种表单选择方法,以便select 知道要处理哪个表单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    相关资源
    最近更新 更多