Envoi de Ctrl + une combinaison à un élément

J'utilise protractor pour les tests angulaires de bout en bout alias e2e.

Pour envoyer des clés à un élément, j'utilise:

element(by.model('myModel')).sendKeys('Test');

Comment puis-je envoyer une combinaison de touches, comme Ctrl+A?


J'ai cherché dans le code source du rapporteur sur github, mais je n'ai pas trouvé d'exemple pertinent.

27
demandé sur Artjom B. 2014-08-14 08:21:02

3 réponses

C'est parfaitement possible sous Linux et Windows mais pas sous OSX

var elm = element(by.model('myModel'));
elm.sendKeys(protractor.Key.chord(protractor.Key.CONTROL, "a"));

Il y a aussi une variante non-élément:

browser.actions().keyDown(protractor.Key.CONTROL).sendKeys('a').perform();
28
répondu Leo Gallucci 2014-08-14 19:12:41

Si vous utilisez protractor-hotkeys, vous pouvez utiliser des chaînes de raccourcis simples (comme celles de angular-hotkeys) pour les déclencher dans les tests de protractor.

Donc, cela deviendrait:

var hotkeys = require('protractor-hotkeys');
hotkeys.trigger('ctrl+a', { targetElement: element(by.model('myModel')) });
7
répondu Droogans 2015-12-11 20:02:01

Semble être un ancien post. Mais le partage D'une solution a fonctionné pour moi pour effacer le contenu de Tinymce editor en utilisant protractor dans MAC.

var body_editor = element(by.id('tinymce'));/*id of body inside iframe*/
body_editor.click().sendKeys(protractor.Key.chord(protractor.Key.COMMAND, "a"));
body_editor.click().sendKeys(protractor.Key.BACK_SPACE);
2
répondu Arun Viswanathan 2015-01-22 10:51:56