夜巡测试:. sendkeys和.keys不发送按键点击



我使用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()
  }
}

您共享的测试不应该通过。您应该看到一个错误:

 ✖ 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,所以它接受相同的参数

你可以尝试下面的方法在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);"

最新更新