xpath-如何从Quora中的节点获取文本?

时间:2018-09-24 18:43:58

标签: xpath

我已经复制了Chrome返回的某个节点的xpath

// * [@ id =“ __ w2_cEfEsuQ_list_item”] / div / div [2] / div / div [1] / div [2] / a [1]

在Chrome的控制台中执行此操作会返回

[a]
    0: a
    length: 1
    __proto__: Array(0)

0可以扩展并包含许多子节点(我删除了大部分子节点,因为SO抱怨我的问题中的代码太多),如下所示:

accessKey: ""
tagName: "A"
target: ""
text: "38 Answers"
textContent: "38 Answers"
title: ""
translate: true
type: ""
username: ""

我想要一个返回textContenttext节点的xpath。我在//*[@id="__w2_cEfEsuQ_list_item"]/div/div[2]/div/div[1]/div[2]/a[1]/text()上尝试了其他变体,但没有一个奏效。我该怎么办?

1 个答案:

答案 0 :(得分:0)

Chrome控制台确实具有only XPath 1.0
尽管如此,获取text()应该可以正常工作。

要直接从Chrome的控制台在当前页面上运行XPath查询,

  • 打开控制台(在Mac上为F12cmd-opt-J),然后
  • 将查询放在$x("")内并运行它。

如果要打印控制台中定位器找到的所有文本元素(或执行其他操作),只需调用.forEach

$x('//*[@id="__w2_cEfEsuQ_list_item"]/div/div[2]/div/div[1]/div[2]/a[1]/text()').forEach(function (item) {
    console.log(item);});

或使用索引$x("//p/text()")[0]

直接访问结果数组的元素