如何使用 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 选择器的情况下设置给定 elementHandle
的 innerText
吗?
我知道我可以使用 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⚠️')
我正在尝试在 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 选择器的情况下设置给定 elementHandle
的 innerText
吗?
我知道我可以使用 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⚠️')