似乎$x
正在被我当前正在使用的页面中的代码覆盖-我无法使用$x('//xpath-goes-here')
从页面中返回任何内容。
我知道$()
是document.querySelector()
的别名,但是我找不到$x()
是否是我可以使用的另一种方法的别名。
还有其他使用chrome开发工具测试XPATH字符串返回值的方法吗?
答案 0 :(得分:1)
使用devtools元素检查器查找工具:按 Ctrl F 或⌘F,然后键入xpath查询,匹配的元素将突出显示:
或以$$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快速注入代码。之后,您将可以在控制台中使用它。