我想获取元素的 tagName。在以下示例中应为按钮
。
const puppeteer = require('puppeteer')
async function run () {
const browser = await puppeteer.launch({headless: false})
const page = await browser.newPage()
const html = `
<div>
<button type="button">click me</button>
<span>Some words.</span>
</div>
`
await page.setContent(html)
const elements = await page.$$('button')
const tagName = await elements[0].$eval('*', node => node.tagName)
console.log(tagName) // expect to be 'button'
await browser.close()
}
run()
错误消息说错误:未能找到与选择器“*”匹配的元素
我可以告诉 elements
匹配一个元素,因为 elements.length
是 1
哪里错了?
==========编辑==========
假设我事先已经有了 elements
,如何从中获取 tagName
。
谢谢!
最佳答案
尝试使用 page.$eval
选择按钮,然后从按钮获取 tagName
:
const tagName = await page.$eval('button', button => button.tagName);
如果您已经有像 elements[0]
这样的 elementHandle
,您可以通过将其传递给 page.evaluate
来从该元素获取属性>:
const tagName = await page.evaluate(
element => element.tagName,
elements[0]
);
关于node.js - puppeteer如何获取元素tagName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54035687/