getAttribute 在 ElementHandle 上不可用

getAttribute is not available on the ElementHandle

我使用的是 playwright 版本 0.13.0,

我有一个 ElementHandle 的实例,但是 getAttribute 函数不可用,调用它会抛出一个错误,指出 getAttribute 不是一个函数:

await myElem.getAttribute('src')

我用调试器仔细检查过,函数不在实例上。

此外,ElementHandle

没有等效的 page.evaluate 函数

您可以将其作为参数传递给 page.evaluate 函数:

await page.evaluate(el => el.getAttribute('src'), myElem);

await myElem.evaluate(node => node.getAttribute('src');

对于新手,Playwright 的更高版本支持 OP 使用的 API。参见:https://playwright.dev/docs/api/class-elementhandle#elementhandlegetattributename

这对我有用:

const attr = await page.$eval('.your-locator-class', el => el.src)