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

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

Susan Sarandon
Susan Sarandon原创
2024-10-28 16:30:02927浏览

How to Click Elements Based on Text Content Using Puppeteer and XPath?

使用 Puppeteer 按文本单击元素

在 Puppeteer 中,可以使用 XPath 表达式来根据文本内容单击特定元素。

如何单击带有文本的元素

要单击带有特定文本的元素,请使用以下 XPath 表达式:

const [element] = await page.$x("//element[contains(., 'text')]");
await element.click();

替换“元素" 带有适当的标签名称(例如,“button”或“a”),“text”带有所需的子字符串来匹配。例如:

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

注意事项

  • 确保元素包含准确的文本字符串。
  • 如果元素嵌套在对于特定容器,使用附加的“/”来选择所需的祖先元素。例如,要单击 div 内的按钮:
//div[@class='container']/button[contains(., 'Button text')]

XPath 与 Text()

XPath 表达式包含(., ' Text') 使用元素的子节点来匹配指定的文本。相反, contains(text(), 'Text') 仅考虑元素的文本内容。

示例

给定以下 HTML:

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

要单击按钮,请使用:

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

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

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