使用Puppeteer时,单击某些元素时发生的常见错误是
Node is either not visible or not an HTMLElement
此问题已解决并here
但是,当我尝试使用jQuery的dbclick()
方法来模拟双击时,相同的解决方案对我来说失败了
await page.evaluate(() => {
document.querySelector('.some-selector').dbclick();
});
错误:TypeError: document.querySelector(...).dbclick is not a function
为什么?
答案 0 :(得分:1)
没有dbclick
方法,只有具有该名称的事件。
因此在puppeteer中,您可以使用jquery:
await page.evaluate(() => {
$('.some-selector').dbclick();
});
或者用普通的JavaScript语言create an event:
const selector = '.some-selector';
await page.evaluate(selector => {
var targLink = document.querySelector (selector);
var clickEvent = document.createEvent ('MouseEvents');
clickEvent.initEvent ('dblclick', true, true);
targLink.dispatchEvent (clickEvent);
}, selector)