我的代码中包含以下元素:
<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();
任何帮助将不胜感激!
答案 0 :(得分:0)
您可以在选择器中引用“ 1”:
await page.$eval("#\\31", el => console.log("elemnet is:", el.innerText));
可以使用具有非标识符的id值,但是会遇到CSS语法问题。