【发布时间】:2019-12-24 08:51:52
【问题描述】:
我正在为 Puppeteer 使用 Typescript。我正在尝试从元素中获取 innerText。
const data = await page.$eval(selector, node => node.innerText);
我收到了错误:
“元素”类型上不存在属性“innerText”
我尝试像这个问题中描述的那样转换为 HTMLElement: error " Property 'innerText' does not exist on type 'EventTarget' "?
const data = await page.$eval(selector, <HTMLElement>(node: HTMLElement) => node.innerText);
以及像这样创建我自己的界面:
interface TextElement extends Element {
innerText: string;
}
但在每种情况下,我都会收到此特定类型上不存在 innerText 的错误。
“HTMLElement”类型上不存在属性“innerText”
为什么会发生这种情况以及如何处理?
【问题讨论】:
-
您是否考虑过改用更标准的
textContent? -
你为什么不试试这个 -
await page.evaluate(() => document.querySelector("your_selector").innerText)在尝试在控制台中执行这个document.querySelector("your_selector").innerText以检查你是否得到了所需的结果。 -
@CertainPerformance - 你说得对,textContent 似乎有效。但是我实际上确实需要 innerText 的附加功能。但我想知道为什么它甚至在我自己的界面上也不起作用?
-
@PySaad 这会引发同样的错误。
-
innerText有时可能比textContent更可取,如果混合中有子元素和空格。 perfectionkills.com/the-poor-misunderstood-innerText
标签: javascript typescript puppeteer