【问题标题】:Unable to press enter using nightwatch使用守夜人无法按 Enter
【发布时间】:2019-01-13 14:09:39
【问题描述】:

我正在尝试在我的测试中使用下面的代码使用 nightwatch 按下 ENTER

module.exports = {
'Enter Text'(client) {
  client
  .url(url)
  .waitForElementVisible('element', 1000)
  .setValue('input[id="new-todo"]', ['abcdefgh', client.Keys.ENTER])
  .pause(10000)
  .end();

它打开 chrome 浏览器,设置值但不按 ENTER。我的应用程序需要这样做,因为按 Enter 是唯一的选择。

下面是我尝试自动化的部分的 HTML 代码

 <header id="header">
<h1>todos</h1>
<input id="new-todo" disabled placeholder="What needs to be done?" autofocus data-weave="troopjs-todos/widget/create">
</header>

【问题讨论】:

  • HTML 是什么样的?没有它,我们在这里就无能为力了。我怀疑你需要添加一个点击命令或一个带有回车键的发送键。
  • @QualiT 我已经添加了 HTML。你能检查一下吗

标签: javascript selenium selenium-webdriver selenium-chromedriver nightwatch.js


【解决方案1】:

我假设该输入字段上有一些侦听器,因此当它失去焦点时它会保存。假设,试试这个:

编辑:问题可能是 .setValue 中的数组处理不正确。试试这个:

module.exports = {
'Enter Text'(client) {
  client
  .url(url)
  .waitForElementVisible('element', 1000)
  .setValue('input[id="12345"]', 'abcdefgh')
  .keys(client.Keys.ENTER)
  .pause(10000)
  .end();
}

【讨论】:

  • 试过这个。不工作。页面末尾有一个小脚本。这有什么区别吗 ? document.getElementById("new-todo").disabled=false;
  • 几个问题:您的输入是搜索字段吗?大概它会返回您正在搜索的猜测的动态列表。在这种情况下,我想您会知道要单击哪个响应。是否要随机转到特定结果,类似于 Google 的“手气不错”按钮 (google.com)?
  • 正如您在链接中看到的,我不需要单击任何元素。只需输入字符并按回车键是唯一的选择。
  • 用上面的代码试过了。它仍然不起作用。您能否在最后尝试上述链接,看看问题出在哪里?我会为此感谢你:)
  • 啊,有用,谢谢。我已经用另一个选项更新了描述。
猜你喜欢
  • 1970-01-01
  • 2018-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-14
  • 1970-01-01
  • 2023-04-09
相关资源
最近更新 更多