59

我试过这个:

browser.actions().keyDown(protractor.Key.ENTER).keyUp(protractor.Key.Enter).perform();

这给出了错误:

Error: Not a modifier key
4

6 回答 6

89

Keyup/Keydown 仅限于 WebDriver 中的修饰键(shift、ctrl 等)。我想你想要

browser.actions().sendKeys(protractor.Key.ENTER).perform();

于 2013-11-12T01:09:09.193 回答
80

不需要操作()。

您可以执行以下操作:

var input = $('#someInput');
input.sendKeys(protractor.Key.ENTER);

更新:有些人抱怨您没有将输入发送到浏览器。如果您想这样做,只需更改您的选择器:

$('body').sendKeys(protractor.Key.ENTER);
于 2013-12-14T05:06:38.247 回答
10

这是另一种方法

var enter = browser.actions().sendKeys(protractor.Key.ENTER);
enter.perform();
于 2015-03-17T21:07:23.187 回答
8

从这里的文档...

http://appfigures.github.io/webdriver-js-api-reference/symbols/webdriver.WebElement.html#sendKeys

var myInput = element(by.model('myModel.inputName'));
myInput.sendKeys(value, protractor.Key.ENTER);

还有上面链接的文档中的其他示例。

myInput.sendKeys("text was",
                 protractor.Key.CONTROL, "a", protractor.Key.NULL,
                 "now text is");
// Alternatively:
myInput.sendKeys("text was",
                 protractor.Key.chord(protractor.Key.CONTROL, "a"),
                 "now text is");
于 2015-02-05T14:36:44.113 回答
2

这会很好用试试

browser.actions().sendKeys(protractor.Key.ENTER).perform();
于 2020-01-29T11:15:14.880 回答
1

sleep()在我的情况下,如果没有键入的文本和 Enter click,则 enter click 不会执行。

const someInput = $('#someInput');
someInput.sendKeys('test text');
browser.sleep(1000);
someInput.sendKeys(protractor.Key.ENTER);
于 2020-04-23T03:53:33.420 回答