0

用于WWW::Mechanize::Firefox选择项目时,是否可以遍历多个具有相同名称的选择器?

我使用以下代码:

my $un = $mech->selector('input.normal', single => 1);

响应是2 elements found for CSS selector。有没有办法使用 XPath 或更好的方法,或者是否可以循环遍历结果?

加分项:输入输入,即使它不在表单元素中(即使用 JavaScript)

4

2 回答 2

2

使用single您指定的选项,应该有一个与选择器匹配的元素。这就是为什么在找到两个匹配项时会收到错误消息的原因。

该方法将返回一个匹配列表,您可以使用one => 1代替single => 1,如果没有至少一个匹配,这将引发 van 错误,或者您可以完全不使用该选项,它只会返回它的所有内容发现。

my @inputs = $mech->selector('input.normal')

@inputs将用匹配元素列表填充数组<input>,无论有多少。

于 2013-03-08T09:28:03.590 回答
1

模块文档包含以下示例:

my $link = $mech->xpath('//a[id="clickme"]', one => 1);
# croaks if there is no link or more than one link found

my @para = $mech->xpath('//p');
# Collects all paragraphs
于 2013-03-08T09:35:00.290 回答