xpath - как получить текст с узла в Quora? - PullRequest
0 голосов
/ 24 сентября 2018

Я скопировал xpath Chrome для определенного узла

// * [@ 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: ""

Я хочу xpath, который возвращает узлы textContent и text.Я пробовал разные варианты на //*[@id="__w2_cEfEsuQ_list_item"]/div/div[2]/div/div[1]/div[2]/a[1]/text(), но ни один не работал.Как мне это сделать?

1 Ответ

0 голосов
/ 26 сентября 2018

Консоль Chrome действительно только XPath 1.0 .
Тем не менее, получение text() должно работать как положено.

Чтобы выполнить запросы XPath на текущей странице непосредственно из консоли Chrome,

  • Откройте консоль (F12, cmd-opt-J на Mac), затем
  • поместите ваш запрос внутри $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]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...