【问题标题】:count of nodes selected for an xpath in chrome console在 chrome 控制台中为 xpath 选择的节点数
【发布时间】:2017-12-07 10:43:07
【问题描述】:

如何在 chrome 控制台中获取为 xpath 选择的节点数?

我能够使用 Xpath 选择一组节点:

$x("//*[@rel='noopener noreferrer']")

在 chrome 控制台中。但无法使用 chrome 中的 count 函数获取选择的节点数

$x(count("//*[@rel='noopener noreferrer']")) 

虽然使用 count 函数在 Firefox 中运行良好

(//*[@rel='noopener noreferrer'])

请帮助我使用 chrome 控制台计数

【问题讨论】:

  • $x("//*[@rel='noopener noreferrer']").length
  • 注意:$x("//*[@rel='noopener noreferrer']").length 仅匹配与 noopener noreferrer 完全相同的 rel 属性。换句话说,它不会匹配noreferrer noopener。我认为$x("//*[contains(@rel, 'noreferrer') and contains(@rel, 'noopener')]").length 更彻底。

标签: css selenium xpath google-chrome-devtools


【解决方案1】:
$x("//*[contains(@rel, 'noreferrer') and contains(@rel, 'noopener')]").length

$x() 返回与 XPath 选择器匹配的节点数组,因此我们只需使用数组的原生 length 属性来获取计数。

选择器contains(@rel, 'noreferrer') and contains(@rel, 'noopener') 确保您的查询不区分顺序。

【讨论】:

    【解决方案2】:

    其实你可以用xPath直接告诉你count =)

    count(locator)
    

    例如

    count(//*) - 统计页面上的所有元素 - $x("count(//*)")

    count(//a) - 统计页面上的所有属性 - $x("count(//a)")

    使用控制台 $x:

    $x("//a").length
    

    其实你的定位器几乎是正确的

    错误 - $x(count("//*[@rel='noopener noreferrer']"))

    问题是count()是xPath的一部分,不是js函数,所以应该放在引号里面:

    固定 - $x("count(//*[@rel='noopener noreferrer'])")

    【讨论】:

    • Vitaliy Moskalyuk 和 Kayce Basques 都为您解答。这两个建议现在都对我有用。非常感谢!
    猜你喜欢
    • 2022-08-08
    • 2013-04-23
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多