我正在使用带守夜人的node.js。它工作得很好,我唯一的问题是我现在的应用程序需要通过按下'来测试所有箭头键,并确保元素上的类名更改。我无法获得sendKeys函数来实际发送按键,并且该测试通过,当它不应该:P。有什么想法吗?
module.exports = {
'chosenTest.html' : function (browser) {
browser
.url(path)
.waitForelementVisible('div[id=columns]', 1000)
.assert.containsText('div[class="choosable chosen"], 'Test 1-0')
.sendKeys('div[id=columns]', ShowText(browser), browser.Keys.DOWN_ARROW)
.assert.containsText('div[class="choosable chosen"]', 'Test 1-0')
.pause(1000)
.end()
}
}
答案 0 :(得分:5)
您分享的测试不应该通过。你应该看到一个错误:
✖ ReferenceError: ShowText is not defined
除非您在代码中的某处定义了ShowText
...?
你期待ShowText(browser)
做什么?
尝试:
.sendKeys('div[id=columns]', browser.Keys.DOWN_ARROW)
或者,如果您只想在常规窗口上下文中发送按键:
.keys(browser.Keys.DOWN_ARROW)
工作示例:
.sendKeys('div[id=container]', browser.Keys.DOWN_ARROW)
注意:sendKeys
是setValue
的别名
请参阅:/lib/api/element-commands.js#L385所以它接受相同的参数。
答案 1 :(得分:1)
您可以尝试按照以下方式在nightwatch.js中按任意键,我按T并且它工作非常棒!!
client.keys("t", function(done) {
client.pause(5000);
client.expect.element('#carousel_container').to.have.css('display').which.equals('block');
});
我们正在使用上面的方式,因为nightwatch.js键在它的数组中没有任何字母命令,我已经安慰了,我没有找到任何字母表来按下它。
Keys:
{ NULL: '',
CANCEL: '',
HELP: '',
BACK_SPACE: '',
TAB: '',
CLEAR: '',
RETURN: '',
ENTER: '',
SHIFT: '',
CONTROL: '',
ALT: '',
PAUSE: '',
ESCAPE: '',
SPACE: '',
PAGEUP: '',
PAGEDOWN: '',
END: '',
HOME: '',
LEFT_ARROW: '',
UP_ARROW: '',
RIGHT_ARROW: '',
DOWN_ARROW: '',
ARROW_LEFT: '',
ARROW_UP: '',
ARROW_RIGHT: '',
ARROW_DOWN: '',
INSERT: '',
DELETE: '',
SEMICOLON: '',
EQUALS: '',
NUMPAD0: '',
NUMPAD1: '',
NUMPAD2: '',
NUMPAD3: '',
NUMPAD4: '',
NUMPAD5: '',
NUMPAD6: '',
NUMPAD7: '',
NUMPAD8: '',
NUMPAD9: '',
MULTIPLY: '',
ADD: '',
SEPARATOR: '',
SUBTRACT: '',
DECIMAL: '',
DIVIDE: '',
F1: '',
F2: '',
F3: '',
F4: '',
F5: '',
F6: '',
F7: '',
F8: '',
F9: '',
F10: '',
F11: '',
F12: '',
COMMAND: '',
META: ''
},
您可以轻松按下上面数组中的任意键,例如“client.keys(client.Keys.ENTER);”。