【问题标题】:XPath loop with Selenium and perl带有 Selenium 和 perl 的 XPath 循环
【发布时间】:2010-07-09 06:16:36
【问题描述】:

我正在尝试使用 selenium 和 perl 提取输入字段中的所有名称值。部分值,足以识别它,是已知的,其余的是未知的:

此 xpath 可用于查找所有相关匹配项:

//tr/td//input[contains(@name,'partofname')]

所以,在 perl 中:

my $xpath = qq(//tr/td//input[contains(\@name,'partofname')]);
my $count = $sel->get_xpath_count($xpath);

很好,$count 给出了合适的匹配数。

但是,如何为每个匹配项提取@name 属性的值?

我理解的原理是构造一个循环:

foreach my $row (1 .. $count) {
#extract here
};

但是,我似乎无法构造一个 xpath 表达式来查找表达式匹配的每个 $row。所以我认为这是正确的 xpath 表达式来获取我需要帮助的每个匹配项。

任何指针表示赞赏

【问题讨论】:

    标签: perl selenium xpath


    【解决方案1】:

    试试//tr/td/descendant::input[contains(@name,'partofname')][1]

    1 替换为您的计数器。如果那不能,您可以在您的问题中添加一些 HTML,以便我可以建议一个更好的 XPath?

    【讨论】:

    • 嗨 - 感谢您的建议,但这产生了:Invalid xpath [2]: //tr/td/descendant::input[contains( 对于每个节点。html 只是一个表格,有行以及每一行的一些表数据条目——其中一个包含输入属性,包括名称、id 等。
    • HTML 的 sn-p 仍然有用。
    • 什么最小尺寸的 sn-p 有用?表格相当大,每一行也是如此 - 一行会有几个 标签,其中一个包含追捧的属性,对吗?
    • 这真的只是为了你的 HTML 的结构,所以只需要几个虚拟行就可以了。我只是想确保我可以测试我可能提供的任何解决方案。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签