如何使量角器按下ESCAPE键?

时间:2017-03-31 08:39:40

标签: javascript protractor

我试过这个:

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

但没有任何反应。

我在SPACE Key中使用它,这很好。

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

5 个答案:

答案 0 :(得分:9)

可能有几个原因,但首先,根据量角器的documentation,你需要在sendKeys()上执行ElementFinder,所以如果重点是例如,您可以执行此输入字段

element(by.css('#-your-input-id')).sendKeys(protractor.Key.ESCAPE);

你也可以在身体上这样做($ = by.css的简写):

$('body').sendKeys(protractor.Key.ESCAPE);

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

希望这有帮助

答案 1 :(得分:3)

也许您必须将ESC键发送到任何元素? 在我的应用程序中,以下作业适用于取消按钮。

element(by.xpath('...')).sendKeys(protractor.Key.ESCAPE);

答案 2 :(得分:1)

如果您想使用与返回相同的代码,可以使用:

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

我希望这对你有用。

由于sendKeys和Key是使用Keyboard类实现的,因此操作系统的键值可能会有所不同。

以下链接将给出您必须为sendKeys提供的密钥的名称:
https://www.autoitscript.com/autoit3/docs/appendix/SendKeys.htm https://autohotkey.com/docs/commands/Send.htm

希望这会有所帮助。

答案 3 :(得分:1)

当遇到这样的困惑时,请开始查看源代码。然后执行console.log以了解框架提供的内容。

试试这个

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

答案 4 :(得分:0)

基本上您所做的是正确的。尝试像方法一样编写它并调用此方法,因为它对我来说很好用。

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