我正在使用页面对象在e2e v2.1.3中编写NightWatch测试。有项目列表,可以通过单击或按索引的hotKey来选择项。
示例:第二个元素可以通过单击或shift+2选择。
下面是我编写的代码,参考了文档,但是它不起作用
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);
});控制台正在发生,但是如果将click和keyUp、keyDown保存在.perform方法中,则.perform无法工作。
这里有什么需要修理的?
发布于 2022-05-05 08:52:06
return关键字很重要。(这是个愚蠢的错误)click不起作用,内部操作api。最好使用api点击而不是userActions点击。不知道为什么在新的用户操作下添加这个click。这些文档没有足够的例子,需要通过命中和试用的方法来找出。示例:
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);(这取决于功能开发的方式,如果应用程序需要同时按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(这取决于功能开发的方式,如果应用程序需要同时按1和0才能按下)
browser
.pause(3000)
.perform(function () {
const actions = this.actions({ async: true });
return actions
.keyDown('a')
.keyUp('a')
})
.pause(2000);https://stackoverflow.com/questions/72001051
复制相似问题