除了$ x之外,还有另一种方法来测试XPATH字符串吗?

时间:2019-02-20 09:04:59

标签: google-chrome-devtools

似乎$x正在被我当前正在使用的页面中的代码覆盖-我无法使用$x('//xpath-goes-here')从页面中返回任何内容。

我知道$()document.querySelector()的别名,但是我找不到$x()是否是我可以使用的另一种方法的别名。

还有其他使用chrome开发工具测试XPATH字符串返回值的方法吗?

1 个答案:

答案 0 :(得分:1)

使用devtools元素检查器查找工具:按 Ctrl F 或⌘F,然后键入xpath查询,匹配的元素将突出显示:

enter image description here

或以$$x之类的新名称使用native functionality重新实现document.evaluate()

function $$x(xpath, root = document) {
  const x = document.evaluate(xpath, root, null, XPathResult.ANY_TYPE, null);
  if (x.resultType === XPathResult.STRING_TYPE)
    return x.stringValue;
  if (x.resultType === XPathResult.NUMBER_TYPE)
    return x.numberValue;
  if (x.resultType === XPathResult.BOOLEAN_TYPE)
    return x.booleanValue;
  const results = [];
  let node;
  while ((node = x.iterateNext()))
    results.push(node);
  return results;
}

将此代码以$$x的名称存储在devtools snippets panel中,因此您可以通过按 Ctrl P 或⌘P快速注入代码。之后,您将可以在控制台中使用它。