首页 > web前端 > js教程 > 正文

Puppeteer 可以根据文本内容单击元素吗?

DDD
发布: 2024-11-01 01:49:02
原创
588 人浏览过

 Can Puppeteer Click Elements Based on Their Text Content?

在 Puppeteer 中单击带有文本的元素

问题:
Puppeteer 是否可以根据文本内容单击元素,即使有没有唯一标识符?

简短回答:
是的,您可以使用 XPath 表达式单击包含特定文本的元素。

说明:
XPath 提供了一种根据各种条件(包括其文本内容)查询元素的方法。以下是如何在 Puppeteer 中使用它:

<code class="js">const [button] = await page.$x("//button[contains(., 'Button text')]");
if (button) {
    await button.click();
}</code>
登录后复制

此表达式选择页面中包含文本“按钮文本”的第一个按钮元素。

同时确保按钮位于类为“elements”的元素,将以下内容添加到 XPath 表达式中:

<code class="js">const [button] = await page.$x("//div[@class='elements']/button[contains(., 'Button text')]");</code>
登录后复制

为什么不使用 text()?

  • 使用 contains(text( ), 'Text') 在某些情况下可能无法返回预期结果,例如当文本位于子节点中时。
  • 使用 contains(., 'Text') 检查元素的整个内容,包括子节点,提供更准确的结果。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板