How to send keypress in nightwatch
You can try the following way to press any key in nightwatch.js; I am pressing T and it is working superb!
client.keys("t", function(done) { client.pause(5000); client.expect.element('#carousel_container').to.have.css('display').which.equals('block');});
We are using the above way because nightwatch.js Keys does not have any alphabet command in its array, I have consoled and I haven't found any alphabet to press it.
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: '' },
You can press any key in above array easily like "client.keys(client.Keys.ENTER);".
if you entend to send a simple key stroke, you can do it directly through the following
browser.keys('j')
this will simulate the pressing on the J key
but according to http://nightwatchjs.org/api#setValuethis should also do the job
demoTest = function (browser) { browser.setValue('input[type=text]', ['this does the job', browser.Keys.ENTER]);};
So if you need a press a simple character, send it as string, otherwise use one of the special character in the key.json in the nightwatch package
{ "NULL" : "\uE000", "CANCEL" : "\uE001", "HELP" : "\uE002", "BACK_SPACE" : "\uE003", "TAB" : "\uE004", "CLEAR" : "\uE005", "RETURN" : "\uE006", "ENTER" : "\uE007", "SHIFT" : "\uE008", "CONTROL" : "\uE009", "ALT" : "\uE00A", "PAUSE" : "\uE00B", "ESCAPE" : "\uE00C", "SPACE" : "\uE00D", "PAGEUP" : "\uE00E", "PAGEDOWN" : "\uE00F", "END" : "\uE010", "HOME" : "\uE011", "LEFT_ARROW" : "\uE012", "UP_ARROW" : "\uE013", "RIGHT_ARROW" : "\uE014", "DOWN_ARROW" : "\uE015", "ARROW_LEFT" : "\uE012", "ARROW_UP" : "\uE013", "ARROW_RIGHT" : "\uE014", "ARROW_DOWN" : "\uE015", "INSERT" : "\uE016", "DELETE" : "\uE017", "SEMICOLON" : "\uE018", "EQUALS" : "\uE019", "NUMPAD0" : "\uE01A", "NUMPAD1" : "\uE01B", "NUMPAD2" : "\uE01C", "NUMPAD3" : "\uE01D", "NUMPAD4" : "\uE01E", "NUMPAD5" : "\uE01F", "NUMPAD6" : "\uE020", "NUMPAD7" : "\uE021", "NUMPAD8" : "\uE022", "NUMPAD9" : "\uE023", "MULTIPLY" : "\uE024", "ADD" : "\uE025", "SEPARATOR" : "\uE026", "SUBTRACT" : "\uE027", "DECIMAL" : "\uE028", "DIVIDE" : "\uE029", "F1" : "\uE031", "F2" : "\uE032", "F3" : "\uE033", "F4" : "\uE034", "F5" : "\uE035", "F6" : "\uE036", "F7" : "\uE037", "F8" : "\uE038", "F9" : "\uE039", "F10" : "\uE03A", "F11" : "\uE03B", "F12" : "\uE03C", "COMMAND" : "\uE03D", "META" : "\uE03D"}
A simple way of doing this is to use .keys()
method name and then to pass the key name you want to press.
For example: The below command will press the Down arrow key..keys(browser.Keys.ARROW_DOWN)