Skip to content

Commit aa475ff

Browse files
chrisbrainerdDavertMik
authored andcommitted
Added method to nightmare helper to trigger electron mouse events (#553)
1 parent 4a6a72a commit aa475ff

6 files changed

Lines changed: 36 additions & 0 deletions

File tree

docs/helpers/Nightmare.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,14 @@ Can submit special keys like 'Enter', 'Backspace', etc
461461
462462
- `key`
463463
464+
## triggerMouseEvent
465+
466+
Sends [input event](http://electron.atom.io/docs/api/web-contents/#contentssendinputeventevent) on a page.
467+
468+
**Parameters**
469+
470+
- `event` event object, must contain `x` and `y` keys, others as needed from above link
471+
464472
## resizeWindow
465473
466474
Resize the current window to provided width and height.

lib/helper/Nightmare.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,16 @@ class Nightmare extends Helper {
159159
}, function (key, done) {
160160
this.child.call('pressKey', key, done);
161161
});
162+
163+
this.Nightmare.action('triggerMouseEvent', function (ns, options, parent, win, renderer, done) {
164+
parent.respondTo('triggerMouseEvent', function (evt, done) {
165+
win.webContents.sendInputEvent(evt);
166+
done();
167+
});
168+
done();
169+
}, function (event, done) {
170+
this.child.call('triggerMouseEvent', event, done);
171+
});
162172
}
163173

164174
_beforeSuite() {
@@ -568,6 +578,20 @@ class Nightmare extends Helper {
568578
return this.browser.pressKey(key).wait(this.options.waitForAction);
569579
}
570580

581+
/**
582+
* Sends [input event](http://electron.atom.io/docs/api/web-contents/#contentssendinputeventevent) on a page.
583+
* Should be a mouse event like:
584+
* {
585+
type: 'mouseDown',
586+
x: args.x,
587+
y: args.y,
588+
button: "left"
589+
}
590+
*/
591+
triggerMouseEvent(event) {
592+
return this.browser.triggerMouseEvent(event).wait(this.options.waitForAction);
593+
}
594+
571595
/**
572596
* {{> ../webapi/seeCheckboxIsChecked }}
573597
*/

translations/it-IT.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ module.exports = {
1919
'selectOption': 'seleziono_la_opzione',
2020
'fillField': 'compilo_il_campo',
2121
'pressKey': 'premo_il_tasto',
22+
'triggerMouseEvent': 'attivare_levento_del_mouse',
2223
'attachFile': 'allego_il_file',
2324
'seeInField': 'vedo_nel_campo',
2425
'dontSeeInField': 'non_vedo_nel_campo',

translations/pl-PL.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ module.exports = {
1919
'selectOption': 'wybieram_opcję',
2020
'fillField': 'wypełniam_pole',
2121
'pressKey': 'naciskam_przycisk',
22+
'triggerMouseEvent': 'wywołaj_wydarzenie_myszki',
2223
'attachFile': 'załączam_plik',
2324
'seeInField': 'widzę_w_polu',
2425
'dontSeeInField': 'nie_widzę_w_polu',

translations/pt-BR.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ module.exports = {
2121
'selectOption': 'selecionoAOpcao',
2222
'fillField': 'preenchoOCampo',
2323
'pressKey': 'pressioneATecla',
24+
'triggerMouseEvent': 'lançarEventoDoMouse',
2425
'attachFile': 'anexaOArquivo',
2526
'seeInField': 'vejoNoCampo',
2627
'dontSeeInField': 'naoVejoNoCampo',

translations/ru-RU.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ module.exports = {
1212
'selectOption': 'выбираю_опцию',
1313
'fillField': 'заполнаю_поле',
1414
'pressKey': 'нажимаю_кнопку',
15+
'triggerMouseEvent': 'триггерное_событие_мыши',
1516
'attachFile': 'загружаю_файл',
1617
'seeInField': 'вижу_в_поле',
1718
'dontSeeInField': 'не_вижу_в_поле',

0 commit comments

Comments
 (0)