web-dev-qa-db-fra.com

Envoi Ctrl + Une combinaison à un élément

J'utilise rapporteur pour angular de bout en bout aka e2e test.

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

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

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


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

28
alecxe

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 existe également une variante sans élément:

browser.actions().keyDown(protractor.Key.CONTROL).sendKeys('a').perform();
30
Leo Gallucci

Si vous utilisez raccourcis clavier du rapporteur , vous pouvez utiliser des chaînes de raccourcis clavier simples (comme celles des raccourcis clavier angulaires) pour les déclencher dans les tests du rapporteur.

Donc, cela deviendrait:

var hotkeys = require('protractor-hotkeys');
hotkeys.trigger('ctrl+a', { targetElement: element(by.model('myModel')) });
7
Droogans

On dirait un vieux poste. Mais le simple partage d'une solution a fonctionné pour moi pour effacer le contenu de l'éditeur Tinymce utilisant un rapporteur 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
Arun Viswanathan