Подтвердить что ты не робот

Отправка комбинации Ctrl + A в элемент

Я использую protractor для тестирования angular от конца до конца aka e2e.

Чтобы отправить ключи к элементу, я использую:

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

Как я могу отправить комбинацию клавиш, например Ctrl+A?


Я искал исходный код транспортира в github, но не нашел соответствующего примера.

4b9b3361

Ответ 1

Это вполне возможно в Linux и Windows, но не в OSX

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

Существует также неэлементный вариант:

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

Ответ 2

Если вы используете protractor-hotkeys, вы можете использовать простые строки горячих клавиш (например, из angular -hotkeys), чтобы запускать их в тестах транспортира.

Итак, это станет следующим:

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

Ответ 3

Похоже на старый пост. Но просто совместное решение помогло мне очистить содержимое редактора Tinymce, используя транспортир в 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);

Ответ 4

ДЛЯ ПОЛЬЗОВАТЕЛЕЙ MAC - 2019

Следующий код выбирает последнее слово из ввода

await $elem.sendKeys(protractor.Key.ALT, protractor.Key.SHIFT, protractor.Key.ARROW_LEFT);