gal*_*330 3 testing key acceptance-testing keypress nightwatch.js
我正在将node.js与Nightwatch一起使用。它工作的很好,我唯一的问题是我的当前应用程序需要通过“按”所有箭头键进行测试,并确保元素上的类名称发生更改。我无法获取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()
}
}
Run Code Online (Sandbox Code Playgroud)
您共享的测试不应通过。您应该看到一个错误:
? ReferenceError: ShowText is not defined
Run Code Online (Sandbox Code Playgroud)
除非您ShowText在代码中定义了某处...?
您ShowText(browser)打算做什么?
尝试:
.sendKeys('div[id=columns]', browser.Keys.DOWN_ARROW)
Run Code Online (Sandbox Code Playgroud)
或者,如果您只想在常规窗口上下文中发送按键:
.keys(browser.Keys.DOWN_ARROW)
Run Code Online (Sandbox Code Playgroud)
工作示例:
.sendKeys('div[id=container]', browser.Keys.DOWN_ARROW)
注意:sendKeys是别名,setValue
请参见:/lib/api/element-commands.js#L385,因此它接受相同的参数。
您可以尝试按以下方式在 nightwatch.js 中按任意键,我按 T 并且它工作得很好!!
client.keys("t", function(done) {
client.pause(5000);
client.expect.element('#carousel_container').to.have.css('display').which.equals('block');
});
Run Code Online (Sandbox Code Playgroud)
我们正在使用上述方式,因为 nightwatch.js Keys 在它的数组中没有任何字母命令,我已经安慰过,但我没有找到任何字母来按下它。
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: '?'
},
Run Code Online (Sandbox Code Playgroud)
您可以像“client.keys(client.Keys.ENTER);”一样轻松按下上述数组中的任意键。