给定一个 ElementHandle,如何找到与其关联的 HTML ID
Given an ElementHandle, how to find the HTML ID associated with it
在 Playwright 中,给定一个有效的 ElementHandle 对象,我如何找到与该元素关联的关联 HTML ID?
您可以像这样使用 page.evaluate
检索它:
const elemHandle = await page.$('h1')
const idAttr = await page.evaluate(el => el.id, elemHandle)
console.log(idAttr)
当然,不能保证任何元素都会有id
。
(注意:我不知道以下方法是否也适用于 Playwright,但它肯定适用于 puppeteer。)
如果您不受 id 属性的限制,您可以检索页面内元素的唯一选择器,例如:
console.log(elemHandle._remoteObject)
{
type: 'object',
subtype: 'node',
className: 'HTMLHeadingElement',
description: 'h1.fs-headline1.ow-break-word.mb8.flex--item.fl1',
objectId: '5611379091209172520.3.2'
}
其中 description
的值是一个有效的选择器。
在 Playwright 中,给定一个有效的 ElementHandle 对象,我如何找到与该元素关联的关联 HTML ID?
您可以像这样使用 page.evaluate
检索它:
const elemHandle = await page.$('h1')
const idAttr = await page.evaluate(el => el.id, elemHandle)
console.log(idAttr)
当然,不能保证任何元素都会有id
。
(注意:我不知道以下方法是否也适用于 Playwright,但它肯定适用于 puppeteer。)
如果您不受 id 属性的限制,您可以检索页面内元素的唯一选择器,例如:
console.log(elemHandle._remoteObject)
{
type: 'object',
subtype: 'node',
className: 'HTMLHeadingElement',
description: 'h1.fs-headline1.ow-break-word.mb8.flex--item.fl1',
objectId: '5611379091209172520.3.2'
}
其中 description
的值是一个有效的选择器。