首页 >web前端 >js教程 >如何使用 Puppeteer 根据文本内容单击元素?

如何使用 Puppeteer 根据文本内容单击元素?

Barbara Streisand
Barbara Streisand原创
2024-10-29 07:30:30410浏览

How to Click an Element Based on Text Content Using Puppeteer?

使用 Puppeteer 单击带有文本的元素

挑战:仅根据文本定位并单击元素

考虑以下 HTML 片段:

<code class="html"><div class="elements">
    <button>Button text</button>
    <a href="#">Href text</a>
    <div>Div text</div>
</div></code>

目标: 在包含“按钮文本”的按钮元素上实现单击操作。

解决方案:

下面的 XPath 表达式标识包含所需文本的按钮:

"//button[contains(., 'Button text')]"

但是,为了确保与周围的

容器,使用此修改后的表达式:
"//div[@class='elements']/button[contains(., 'Button text')]"

执行点击操作:

const [button] = await page.$x(&quot;//div[@class='elements']/button[contains(., 'Button text')]&quot;);
if (button) {
    await button.click();
}

说明:

使用 .contains(. , 'Text') 而不是 .contains(text(), 'Text') XPath 表达式确保它包含子节点,因此不会排除元素结构中更深层的文本节点。

以上是如何使用 Puppeteer 根据文本内容单击元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn