如何使用人偶对模拟设备执行拖动缩放

时间:2019-03-06 16:16:03

标签: javascript google-chrome selenium-chromedriver ui-automation puppeteer

任何人都可以在页面处于模拟设备模式下时模拟与操纵p的拖动缩放交互。要以用户身份执行此操作,请在拖动鼠标的同时按住SHIFT键。

不幸的是,以下操作无效

const cx = 160;
const cy = 284;
await page.mouse.move(cx, cy);
await page.keyboard.down('Shift');
await page.mouse.down();
await page.mouse.move(cx, cy - 300, {steps: 300});
await page.mouse.up();
await page.keyboard.up('Shift');

1 个答案:

答案 0 :(得分:1)

根据this issue上的对话,他们不打算添加此类功能。我会引用他们的回应,

  

我不喜欢为WebPlatform的事件添加伪造者级别的API。   Puppeteer的点击与WebPlatform的点击不同   document.createEvent;将它们作为唯一的一流API   强调建议使用它们来点击   页面。

     

我建议使用一组帮助方法来满足您的需求。

但是您可以通过这种方式做到

await this._client.send('Input.dispatchMouseEvent', {
      type: 'mousePressed',
      button: this._button,
      x: this._x,
      y: this._y,
      modifiers: this._keyboard._modifiers,
      clickCount: (options.clickCount || 1)
});

这里是触发一个小鼠标事件的另一个代码段(与.evaluate函数一起使用)。

function triggerMouseEvent (node, eventType) {
    var clickEvent = document.createEvent ('MouseEvents');
    clickEvent.initEvent (eventType, true, true);
    node.dispatchEvent (clickEvent);
}