如何让 Protractor 模拟按下 ESCAPE 键?

8
我尝试过这个:

我尝试过这个:

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

但是没有任何反应。

我使用SPACE键,这个方法很有效。

browser.actions().sendKeys(protractor.Key.SPACE).perform();
5个回答

13

可能有多种原因导致此问题,但首先根据Protractor的文档说明,您需要在 ElementFinder 上执行 sendKeys() 方法,所以如果焦点在例如输入字段上,您可以这样做:

element(by.css('#-your-input-id')).sendKeys(protractor.Key.ESCAPE);
你也可以像这样在 body 上使用它($by.css 的简写):
$('body').sendKeys(protractor.Key.ESCAPE);

其次,您的Webdriver的UserInteraction API可能存在问题。过去Firefox和Safari驱动程序以及某些版本的Chromedriver都存在许多问题。

希望这能帮到您。


6

3
也许您需要向任何元素发送“ESC”键?
在我的应用程序中,以下赋值对于取消按钮有效。
element(by.xpath('...')).sendKeys(protractor.Key.ESCAPE);

0

当遇到这种困惑时,开始查看源代码...否则使用console.log来了解框架提供的内容。

试试这个

console.log('**********');
console.log(protractor.Key);
console.log('**********');

0

基本上你所做的是正确的。尝试将其写成方法并调用此方法,因为对我来说它运行良好。

selectEscapeKey: function () { return browser.actions().sendKeys(protractor.Key.ESCAPE).perform();},


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接