javascript - 如何在 puppeteer 中使用 querySelector 获取特定元素 <dl>

标签 javascript puppeteer

我是 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/

相关文章:

javascript - 如何使用 Puppeteer 从当前页面重定向到另一个页面后获取 URL?

google-chrome - 我的容器化 Puppeteer 如何与我的主机 Chrome 通信?

javascript - 如何使用 Puppeteer 获取页数?

javascript - 自动将引用从 index.html 复制到 karma.conf.js

javascript - Puppeteer 给出 undefined 和 $$eval

javascript - 这个 limitChars 功能可以改进吗?

javascript - 使用 chrome.bluetoothLowEnergy API 连接到 iOS 设备

javascript - 使用 puppeteer browser.newPage() 时 Firebase 函数超时

javascript - 如何启用和禁用 Twitter Bootstrap 按钮?

javascript - 将随机字母显示为属性值而不是数组项