使用 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("//div[@class='elements']/button[contains(., 'Button text')]");
if (button) {
await button.click();
}
说明:
使用 .contains(. , 'Text') 而不是 .contains(text(), 'Text') XPath 表达式确保它包含子节点,因此不会排除元素结构中更深层的文本节点。
以上是如何使用 Puppeteer 根据文本内容单击元素?的详细内容。更多信息请关注PHP中文网其他相关文章!