Как выполнить правый клик с Кукольником? - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь выполнить щелчок правой кнопкой мыши с помощью Puppeteer.

Я пытался добавить параметр:

await component.click({ button: "right" })

Но все, что я получаю, это обычный щелчок по компоненту.,Я следовал за API Кукловода .

Что я делаю не так?

1 Ответ

0 голосов
/ 02 октября 2018

Правильно, что вы можете использовать elementHandle.click() с параметром button, установленным на 'right', чтобы щелкнуть правой кнопкой мыши элемент:

const example = await page.$( '#example' );

await example.click( {
    button : 'right'
});

В соответствии с официальнымДокументация для elementHandle.click():

Этот метод прокручивает элемент при необходимости, а затем использует page.mouse, чтобы щелкнуть в центре элемента.Если элемент отсоединен от DOM, метод выдает ошибку.

Мы можем убедиться в этом, посмотрев исходный код для mouse.click(), и мы увидим, чтоПараметр button рассматривается перед отправкой в ​​Input.dispatchMouseEvent в протоколе Chrome DevTools.

Другой метод, который можно использовать для щелчка правой кнопкой мыши по элементу, заключается в использовании page.click():

await page.click( '#example', {
    button : 'right'
});

В качестве альтернативы вы можете использовать page.evaluate(), чтобы щелкнуть правой кнопкой мыши элемент с JavaScript, выполненным в среде DOM страницы:

await page.evaluate( () => {
    const example = document.getElementById( 'example' );
    const event   = document.createEvent( 'MouseEvents' );

    event.initMouseEvent( 'click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 2, null );

    example.dispatchEvent( event );
});
...