You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Puppeteer中Page.locator()与Page.$()的技术疑问

Puppeteer中locator()与$()的差异及疑问

来自《Page interactions | Puppeteer》:

Locators是推荐的元素选择与交互方式。Locators封装了元素选择逻辑,并允许Puppeteer自动等待元素出现在DOM中且处于适合执行操作的状态。你需通过page.locator()或frame.locator()函数实例化Locator。若Locator API无法满足需求,仍可使用page.waitForSelector()或ElementHandle等底层API。

下表总结了对locator()与$()差异的理解:

Page方法返回类是否等待元素出现在DOM中?是否需要await?输入方法
locator()Locator是(重试直至成功或超时)否仅支持click、hover、scroll
$()ElementHandle否是多种

我有以下技术疑问:

  • 既然locator()会等待元素出现在DOM中,为何不需要使用await?而$()不等待元素,却需要使用await?
  • 为何不等待元素出现的$()比等待元素出现的locator()拥有更多的设备输入方法?
  • locator()的底层是否是waitForSelector()与$()的组合?

相关问题:为何使用locator()时元素不可点击,但使用$()时可点击?

内容的提问来源于stack exchange,提问作者Ooker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 05:12:42