我是 puppeteer 的初级用户,但无法在代码上搜索此选择器, 有人可以告诉我如何获取上面 HTML 中保存 dl 内容的元素的 CSS 选择器吗?
我正在尝试使用selectorall和selector,但只返回未定义
尝试获取元素的代码
await page.waitFor(".row > div:nth-child(2) > div");
let list = await page.evaluate(() => {
const getInnerTextForSelector = selector => {
const element = document.querySelector(selector);
if (element) return element.innerText;
return "Selector not found";
};
return {
title: getInnerTextForSelector('h5[class="card-title"]'),
subtitle: getInnerTextForSelector(
'h6[class="card-subtitle mb-2 text-muted"]'
),
sit: getInnerTextForSelector("div > dt:nth-child(1)"),
};
});
要获取的类。
<div class="col-lg">
<dl class="row">
<dt class="col-sm-3">Situação</dt><dd class="col-sm-9">Entrada</dd>
<dt class="col-sm-3">Trâmite</dt><dd class="col-sm-9">10/02/2020</dd>
<dt class="col-sm-3">Regime</dt><dd class="col-sm-9">Ordinário</dd>
<dt class="col-sm-3">Assunto</dt><dd class="col-sm-9">Diversos</dd>
<dt class="col-sm-3">Autor</dt>
<dd class="col-sm-9">Vereador<br>
<b>CLEITON MARCIO FOSSÁ</b>.
</dd>
</dl>
</div>
最佳答案
据我了解,除非您具有某种形式的唯一属性(例如 id 或数据),以便可以在 XML 文档中区分它们,否则您不能这样做。
如果您愿意,可以使用自定义属性,例如
<dt class="col-sm-3" data-ref="Regime">Regime</dt>
然后像这样选择它
[data-ref="Regime"]
您还可以使用querySelectorAll("dt"),然后使用JS迭代这些值来找到您想要的值吗?
ps:关于Selector Attributes的更多信息,我知道它说的是 CSS,但它们的工作原理是相同的,并且可以很好地直观地了解正在发生的事情:)
关于javascript - 如何在 puppeteer 中使用 querySelector 获取特定元素 <dl>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60330322/