关于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
相关产品推荐
相关产品推荐

