0

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

它们实际上是等效的吗?

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

1 回答 1

2

不总是。

第一个代码只使用 Web-API HTMLElement.click()

第二种使用更复杂的方式

如果需要,此方法将元素滚动到视图中,然后使用 page.mouse 单击元素的中心。如果元素与 DOM 分离,则该方法会引发错误。

我在各种问题中读到过,用户在各种页面上下文中对这些方法产生了不同的影响。有时其中一个可以正常工作,而另一个则不能。

于 2020-06-16T06:52:15.923 回答