English 中文(简体)
如何使用WWW::Mechanize选中复选框?
原标题:How to check a checkbox using WWW::Mechanize?

我阅读了PerlWWW::Mechanize模块,语法如下:

$mech->tick( $name, $value [, $set] )

但是,当我检查网页的页面来源时,我发现了以下内容:

<div class="key-name" title="GLOBAL_PROCESSING">GLOBAL_PROCESSING</div>
    <div class="col-50 col-left">
    <div class="string-controls">
    <a href="#" class="control-expand-toggle"></a>
    <a href="#" class="control-activity-toggle ">0</a>
    <input type="checkbox" class="control-select-string">
    </div>

我没有看到复选框字段的id和值。我该怎么做?

此外,该复选框不是任何形式的一部分。我如何在Mechanize中引用此复选框?

HTML代码

<div id="edit-controls-leftside" class="clear-fix">
<div class="col-left">
<label>
<input id="select-all-visible" class="" type="checkbox">
&nbsp;Select all visible
</label>
<a id="expand-all" class="blue-on-dark-blue text-link arrow-leftside-down"     href="#">Show key names</a>
<a id="show-modify-nav" class="blue-on-dark-blue text-link arrow-leftside-right disabled" href="#">Modify selected...</a>
<nav id="modify-nav" style="display: none;">
<a id="show-order-translation" class="sub-nav-item" href="#">Order translations</a>
问题回答

你为什么要这么做?

因为复选框没有名称或值,所以它不会成为任何提交的一部分,即使它是表单的一部分。

你认为JavaScript使用复选框来切换其他复选框吗?

$mech->tick(  name  => undef );

以下是使用perlMechanize检查没有值的复选框的一些解决方法。

来自机械化手动

如何选中未定义值的复选框?

将其设置为“on”的值。

$mech->field( my_checkbox =>  on  );

找到了另一个选项在这里

$form->find_input( checkbox_id )->check();

唯一的问题是,您的复选框也没有名称/id。希望其他人能加入进来,告诉我如何使用名称/id以外的其他东西来抓取复选框。我会继续寻找。

编辑:

您可以使用:

$mech->find_all_inputs( ... criteria ... )

按类型和/或类名定位复选框,因为它没有名称或id。

使用方法检查HTML中的:表单。文档引用:

一些输入类型表示可以打开/关闭的切换。这包括“复选框”和“选项”输入。调用此方法可以打开此输入,而无需知道值名称。

适用于HTML的代码:

my $w = WWW::Mechanize->new;
$w->get( file:///tmp/10775965.html );
[$w->forms->[0]->inputs]->[0]->check;




相关问题
Why does my chdir to a filehandle not work in Perl?

When I try a "chdir" with a filehandle as argument, "chdir" returns 0 and a pwd returns still the same directory. Should that be so? I tried this, because in the documentation to chdir I found: "...

How do I use GetOptions to get the default argument?

I ve read the doc for GetOptions but I can t seem to find what I need... (maybe I am blind) What I want to do is to parse command line like this myperlscript.pl -mode [sth] [inputfile] I can use ...

Object-Oriented Perl constructor syntax and named parameters

I m a little confused about what is going on in Perl constructors. I found these two examples perldoc perlbot. package Foo; #In Perl, the constructor is just a subroutine called new. sub new { #I ...

Where can I find object-oriented Perl tutorials? [closed]

A Google search yields a number of results - but which ones are the best? The Perl site appears to contain two - perlboot and perltoot. I m reading these now, but what else is out there? Note: I ve ...

热门标签