这 2 个 puppeteer 功能是否等效?

这两条代码是否都选择并单击了同一个元素?

它们实际上是等效的吗?

await page.$eval('#loginForm > button', form => form.click());
const button = await page.$('#loginForm > button');
await button.click();


RISEBY
浏览 88回答 1
1回答

慕虎7371278

不总是。第一个代码只使用 Web-API HTMLElement.click()。第二种使用更复杂的方式:如果需要,此方法将元素滚动到视图中,然后使用 page.mouse 单击元素的中心。如果元素与 DOM 分离,则该方法会引发错误。我在各种问题中读到过,用户在各种页面上下文中对这些方法产生了不同的影响。有时其中一个可以正常工作,而另一个则不能。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript