无法使用快捷键(热键)
Unable to use short cut keys (hotKeys)
我正在使用页面对象在 NightWatch v2.1.3 中编写 e2e 测试。
有项目列表,可以通过单击或通过其索引的热键选择项目。
示例:可以通过单击或 shift+2 选择第二个元素。
我编写了以下代码,参考了 docs,但它不起作用
browser.perform(function () {
const actions = this.actions({async: true});
console.log('performing hotKeys');
actions
.click('@option1')
.keyDown(Keys.SHIFT)
.keyDown(Keys.NUMPAD2)
.keyUp(Keys.NUMPAD2)
.keyUp(Keys.SHIFT);
});
控制台正在运行,但是当保留在 .perform
方法中时,单击和 keyUp、keyDown 不起作用。
这里需要修复什么?
return
关键字很重要。 (这里是愚蠢的错误)
- 对普通键使用 'a'、'b'、'1'、'2'(单引号很重要,即使是数字)
click
无效,内部操作 api。最好使用api click instead of userActions click。不知道为什么这个 click
被添加到新的 user-actions 下。文档中没有足够的示例,需要通过点击和试用的方法来查找。
示例:
- 对于 SHIFT + 1
browser
.pause(3000)
.perform(function () {
const actions = this.actions({ async: true });
return actions
.keyDown(Keys.SHIFT)
.keyDown('1')
.keyUp('1')
.keyUp(Keys.SHIFT);
})
.pause(2000);
- 对于 Shift + 10
(这取决于功能的开发方式,如果应用程序需要同时按下1和0)
browser
.pause(3000)
.perform(function () {
const actions = this.actions({ async: true });
return actions
.keyDown(Keys.SHIFT)
.keyDown('1')
.keyUp('1')
.keyDown('0')
.keyUp('0')
.keyUp(Keys.SHIFT);
})
.pause(2000);
// keyUp('10') wont work, it is not a valid key in your keyboard
- 对于简单的'a'
(这取决于功能的开发方式,如果应用程序需要同时按下1和0)
browser
.pause(3000)
.perform(function () {
const actions = this.actions({ async: true });
return actions
.keyDown('a')
.keyUp('a')
})
.pause(2000);
我正在使用页面对象在 NightWatch v2.1.3 中编写 e2e 测试。 有项目列表,可以通过单击或通过其索引的热键选择项目。
示例:可以通过单击或 shift+2 选择第二个元素。
我编写了以下代码,参考了 docs,但它不起作用
browser.perform(function () {
const actions = this.actions({async: true});
console.log('performing hotKeys');
actions
.click('@option1')
.keyDown(Keys.SHIFT)
.keyDown(Keys.NUMPAD2)
.keyUp(Keys.NUMPAD2)
.keyUp(Keys.SHIFT);
});
控制台正在运行,但是当保留在 .perform
方法中时,单击和 keyUp、keyDown 不起作用。
这里需要修复什么?
return
关键字很重要。 (这里是愚蠢的错误)- 对普通键使用 'a'、'b'、'1'、'2'(单引号很重要,即使是数字)
click
无效,内部操作 api。最好使用api click instead of userActions click。不知道为什么这个click
被添加到新的 user-actions 下。文档中没有足够的示例,需要通过点击和试用的方法来查找。
示例:
- 对于 SHIFT + 1
browser
.pause(3000)
.perform(function () {
const actions = this.actions({ async: true });
return actions
.keyDown(Keys.SHIFT)
.keyDown('1')
.keyUp('1')
.keyUp(Keys.SHIFT);
})
.pause(2000);
- 对于 Shift + 10
(这取决于功能的开发方式,如果应用程序需要同时按下1和0)
browser
.pause(3000)
.perform(function () {
const actions = this.actions({ async: true });
return actions
.keyDown(Keys.SHIFT)
.keyDown('1')
.keyUp('1')
.keyDown('0')
.keyUp('0')
.keyUp(Keys.SHIFT);
})
.pause(2000);
// keyUp('10') wont work, it is not a valid key in your keyboard
- 对于简单的'a'
(这取决于功能的开发方式,如果应用程序需要同时按下1和0)
browser
.pause(3000)
.perform(function () {
const actions = this.actions({ async: true });
return actions
.keyDown('a')
.keyUp('a')
})
.pause(2000);