一尘不染

模拟量角器中的慢速键入

angularjs

sendKeys()方法将 一次发送所有密钥 (实际上 一次发送一次 ,但是很快):

var elm = element(by.id("myinput"));
elm.sendKeys("test");

有没有一种方法可以减慢键入速度,以便量角器一次发送 一个字符, 每个字符之间的延迟很小?

我们可以完全放慢Protractor的速度,但这不会改变sendKeys()工作方式,并且在我们只需要“发送键”部分且仅在特定情况下,它也会减慢一切。


阅读 357

收藏
2020-07-04

共1个答案

一尘不染

这个想法是使用browser.actions()和构造一系列“发送键”命令-
每个字符串中的每个字符。在每个“发送键”命令之后,我们通过引入自定义sleep操作来增加延迟。最后,这是我们提供的可重用函数:

function slowType(elm, keys, delay) {
    var action = browser.actions().mouseMove(elm).click();

    for (var i = 0; i < keys.length; i++) {
        action = action.sendKeys(keys[i]).sleep(delay);
    }

    return action.perform();
}

用法:

slowType(elm, "some text", 100);
2020-07-04