找不到ID包含puppeteer的元素

时间:2019-11-25 14:04:36

标签: javascript puppeteer id

我的代码中包含以下元素:

<div class="MuiButtonBase-root MuiListItem-root MuiListItem-gutters MuiListItem-button" tabindex="0" role="button" aria-disabled="false" id="1"><div class="MuiListItemText-root"><span class="MuiTypography-root MuiListItemText-primary MuiTypography-body1">Arne Nordman (arne@nordman.no)</span></div><span class="MuiTouchRipple-root"></span></div>

此元素是在文本字段中键入后出现的下拉列表的一部分。不幸的是,当我使用以下代码时,无法识别该元素。它说:“ DOMException:无法对'Document'执行'querySelector':'#1'不是有效的选择器”。

这是我的代码:

const puppeteer = require("puppeteer");

async function run() {
  const browser = await puppeteer.launch({ headless: false });
  const page = await browser.newPage();

  await page.goto("http://localhost:3000/");

  await page.evaluate(() =>
    [...document.querySelectorAll("button")].map(
      elem => elem.innerText === "Personell & Institutions" && elem.click()
    )
  );

  await page.type("input", "arne");
  await page.waitFor(1000);
  await page.$eval("#1", el => console.log("elemnet is:", el.innerText));
}

run();

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您可以在选择器中引用“ 1”:

await page.$eval("#\\31", el => console.log("elemnet is:", el.innerText));

可以使用具有非标识符的id值,但是会遇到CSS语法问题。