Google Chrome 控制台中的 XPath 查询

D.R*_*.R. 4 xpath google-chrome

我可以像这样在 Google Chrome 的控制台中使用 XPath 查询:

a = $x('my/path')
Run Code Online (Sandbox Code Playgroud)

但是,如果我想找到相对于另一个对象的 XPath 怎么办?例如:

b = a.$x('my/path')
Run Code Online (Sandbox Code Playgroud)

(不起作用),还有:

b = $x('my/path', a)
Run Code Online (Sandbox Code Playgroud)

失败: NotSupportedError: Failed to execute 'evaluate' on 'Document': The context node provided is null.

有人知道如何在 Google Chrome 的开发者控制台中评估相对 XPaths 吗?

ulr*_*chb 6

评估$x回报...

function $x(xpath, [startNode]) { [Command Line API] }
Run Code Online (Sandbox Code Playgroud)

所以,语法是$x('my/path', a).

重要的是,$x返回一个数组但startNode需要一个 DOM 节点,因此您必须获取第一个查询的元素。以下示例演示了当前页面上的行为。

a = $x("//*[@id='question-header']")
> [ <div id=?"question-header">?…?</div>? ]

b = $x(".//*[@href]/text()", a[0])
> [ "XPath queries in Google Chrome console" ]
Run Code Online (Sandbox Code Playgroud)

更新:这是文档