Я работаю над очисткой нескольких страниц с помощью Puppeteer. Контент не различается по классам/идентификаторам/и т.д. и представлены в другом порядке между страницами. Таким образом, мне нужно будет выбрать элементы на основе их внутреннего текста. Я включил упрощенный образец html ниже:
<table>
<tr>
<th>Product name</th>
<td>Shakeweight</td>
</tr>
<tr>
<th>Product category</th>
<td>Exercise equipment</td>
</tr>
<tr>
<th>Manufacturer name</th>
<td>The Shakeweight Company</td>
</tr>
<tr>
<th>Manufacturer address</th>
<td>
<table>
<tr><td>123 Fake Street</td></tr>
<tr><td>Springfield, MO</td></tr>
</table>
</td>
</tr>
В этом примере мне нужно будет очистить имя производителя и адрес производителя. Поэтому я полагаю, что мне нужно будет выбрать соответствующий tr на основе внутреннего текста вложенного th и очистить связанный td внутри того же tr. Обратите внимание, что порядок строк в этой таблице не всегда одинаков, и таблица содержит гораздо больше строк, чем в этом упрощенном примере, поэтому я не могу просто выбрать 3-ю и 4-ю td.
Я попытался выбрать элемент на основе внутреннего текста, используя XPATH, как показано ниже, но, похоже, он не работает:
var manufacturerName = document.evaluate("//th[text()='Manufacturer name']", document, null, XPathResult.ANY_TYPE, null)
Это даже не те данные, которые мне понадобятся (это будет td, связанный с this th), но я решил, что это будет как минимум шаг 1. Если бы кто-то мог внести свой вклад в стратегию выбора по внутреннему тексту или для выбора td, связанного с этим th, я был бы очень признателен.