Как мне выбрать текстовое содержимое, которое не заключено в HTML-тег с помощью XPath?

#xpath #puppeteer

#xpath #puppeteer

Вопрос:

Как мне захватить ЦЕЛЬ из следующего примера HTML с помощью XPath и Puppeteer?

 <div id="parent">
    <div id="sibling_1"> Hello </div>
    <div id="sibling_2"> Good </div>
    TARGET
    <div id="sibling_3"> Bye </div>
</div>
  

Я могу попрощаться со следующим кодом, но я не думаю, что есть способ получить TARGET.

 let xpath = '//*[@id="sibling_1"]/following-sibling::*';
let elements = await page.$x(xpath);
for(var j in elements){
 let xpathTextContent = await elements[j].getProperty('textContent')
 let text = await xpathTextContent.jsonValue();
 console.log("Text: ",text);
}
  

Ответ №1:

Вот решение в javascript.

 document.querySelector('div#parent').innerText
  

Ответ №2:

Оказывается, TARGET принадлежит родительскому элементу:

 let xpath = '//*[@id="parent"]';
let elements = await page.$x(xpath);
let xpathTextContent = await elements[0].getProperty('textContent')
let text = await xpathTextContent.jsonValue();