如何使用 Puppeteer 通过 ElementHandle 设置 innerText?

How to Set innerText By ElementHandle with Puppeteer?

我正在尝试在 Puppeteer 测试环境中设置 HTML 元素的 innerText,但无法(轻松地)通过 CSS 选择器获取该元素,所以我通过以下方式获取 elementHandle

let [ el ] = await page.$x(`//span[contains(text(), 'addTestFile.pdf')]`)

我通常使用 evaluate 设置 innerText 用于测试目的,但我需要一个选择器,例如:

await page.evaluate(() => document.querySelector('mySelector').innerText = '⚠️DOM modified for testing purposes⚠️')

我可以在没有 CSS 选择器的情况下设置给定 elementHandleinnerText 吗?

我知道我可以使用 await el.getProperty('innerHTML') 获取值,但我找不到设置它的方法。

我想通了:我可以在 elementHandle 上使用 evaluate,就像这样:

let [ el ] = await page.$x(`//span[contains(text(), 'addTestFile.pdf')]`)
await el.evaluate(element => element.innerText = '⚠️DOM modified for testing purposes⚠️')