Puppeteer Sharp - 获取包含 textContent 的元素
Puppeteer Sharp - Get element containing textContent
我正在研究如何有效地从包含特定字符串的页面中获取元素。
该元素位于 <a>
标记中,但它的 classes/ids 是随机生成的。
我能做到这一点的唯一方法是遍历每个 <a>
标签并检查 textContent 是否匹配。
<a>Match this text foo</a>
我也尝试过使用 xPath 表达式,但是我可以弄清楚如何使用返回的元素。
//a[contains(text(),'Match this text')]
谁有更好的解决方案?
page.$x(expression)
方法 returns:<Promise<Array<ElementHandle>>>
。因此,您可以通过索引或仅使用解构赋值来获取特定元素。
例如:
const links = await page.$x('//a[text()="Specific Text"]'); // returns: <Promise<Array<ElementHandle>>>
await links[0].click();
解构赋值甚至更好:
const [ link ] = await page.$x('//a[text()="Specific Text"]');
await link.click();
我正在研究如何有效地从包含特定字符串的页面中获取元素。
该元素位于 <a>
标记中,但它的 classes/ids 是随机生成的。
我能做到这一点的唯一方法是遍历每个 <a>
标签并检查 textContent 是否匹配。
<a>Match this text foo</a>
我也尝试过使用 xPath 表达式,但是我可以弄清楚如何使用返回的元素。
//a[contains(text(),'Match this text')]
谁有更好的解决方案?
page.$x(expression)
方法 returns:<Promise<Array<ElementHandle>>>
。因此,您可以通过索引或仅使用解构赋值来获取特定元素。
例如:
const links = await page.$x('//a[text()="Specific Text"]'); // returns: <Promise<Array<ElementHandle>>>
await links[0].click();
解构赋值甚至更好:
const [ link ] = await page.$x('//a[text()="Specific Text"]');
await link.click();