使用document.querySelector双击Puppeteer

时间:2019-08-20 21:38:07

标签: google-chrome jquery-selectors puppeteer double-click

使用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

为什么?

1 个答案:

答案 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)