夜班测试:.sendKeys和.keys没有发送关键点击

时间:2015-08-04 15:09:57

标签: testing key keypress acceptance-testing nightwatch.js

我正在使用带守夜人的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()
  }
}

2 个答案:

答案 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)

注意:sendKeyssetValue别名 请参阅:/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);”。