Puppeteer elementHandler为什么没有选择器参数?

时间:2018-08-09 07:52:41

标签: google-chrome-devtools puppeteer google-chrome-headless

这是我的代码:

const $container = $('.container');
$container.on('click', '#btn', function(){});

如何触发按钮的事件?

2 个答案:

答案 0 :(得分:1)

对不起,我忘记了这个问题。

await page.waitForSelector(INPUT_SELECTOR, {timeout: 15000});
const pointer = await page.evaluate((sel) => {
  const rect = document.querySelector(sel).getBoundingClientRect();
  return [(rect.top + rect.height) / 2, (rect.left + rect.width) / 2];
}, INPUT_SELECTOR);
await page.mouse.click(...pointer);

只需使用本地鼠标事件。

答案 1 :(得分:0)

您可以使用page.evaluate()完成任务:

await page.evaluate(() => {
  document.querySelector('.container').addEventListener('click', event => {
    if (event.target.id === 'btn') {
      // Your function ...
    }
  });
});

然后您可以使用page.click()测试结果:

await page.click('#btn');