我试过这个:
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
但没有任何反应。
我在SPACE Key中使用它,这很好。
browser.actions().sendKeys(protractor.Key.SPACE).perform();
答案 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();},