将Ctrl + A组合发送到元素

时间:2014-08-14 04:21:03

标签: javascript angularjs selenium-webdriver protractor

我使用protractor进行角度端对端又名e2e测试。

为了将密钥发送到元素,我使用:

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

如何发送密钥组合,例如Ctrl+A


我已经在github上搜索了protractor source code,但还没找到相关的例子。

4 个答案:

答案 0 :(得分:29)

在Linux和Windows中完全可以,但not in 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();

答案 1 :(得分:7)

如果您使用protractor-hotkeys,您可以使用简单的热键字符串(如角度热键中的字符串)在量角器测试中触发它们。

所以,这将成为:

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

答案 2 :(得分:2)

看起来像一个旧帖子。但是,只需共享一个解决方案,我就可以使用MAC中的量角器来清除Tinymce编辑器的内容。

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);

答案 3 :(得分:-1)

针对MAC用户-2019

以下代码从输入中选择最后一个单词

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