web-dev-qa-db-ja.com

ナイトウォッチでキープレスを送信する方法

ナイトウォッチでクリックイベントを送信する方法を知っています。

browser.click('#my-control');

しかし、重要なイベントを送信する方法を見つけることができませんでした。これはナイトウォッチでどのように行われますか?

5
Carl Manaster

次の方法で、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);」のように、上記の配列の任意のキーを簡単に押すことができます。

10
Ashish Jain

簡単なキーストロークを送信する場合は、次の方法で直接送信できます。

browser.keys('j')

これは、Jキーを押すことをシミュレートします

しかし http://nightwatchjs.org/api#setValue によると、これも仕事をするはずです

demoTest = function (browser) {
  browser.setValue('input[type=text]', ['this does the job', browser.Keys.ENTER]);
};

したがって、単純な文字を押す必要がある場合は、文字列として送信します。それ以外の場合は、ナイトウォッチパッケージのkey.jsonにある特殊文字の1つを使用します。

    {
  "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"
}
5
OliverAssad

これを行う簡単な方法は、.keys()メソッド名を使用してから、押したいキー名を渡すことです。

例:以下のコマンドは下矢印キーを押します。 .keys(browser.Keys.ARROW_DOWN)

1
aayush

Seleniumプロトコルのkeysメソッドが必要なものになると思います。

http://nightwatchjs.org/api#keys

1
Qrzy