WWW :: Mechanize :: Firefox CSS Selector有多个元素?

时间:2013-03-08 08:44:05

标签: perl www-mechanize-firefox

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

我使用以下代码:

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

回复是2 elements found for CSS selector。有没有办法使用XPath或更好的方法,还是可以循环结果?

加分点:输入输入即使它不是表单元素(即使用JavaScript)

2 个答案:

答案 0 :(得分:2)

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

该方法将返回匹配列表,您可以使用one => 1代替single => 1,如果没有至少一个匹配则会抛出van错误,或者您可以离开完全选择,当它只返回它找到的所有内容时。

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

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

答案 1 :(得分: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