如何使用 Nightmare.js 将文本输入到具有相同 class 的两个元素中

How to input text into two elements with the same class using Nightmare.js

我正在使用 Nightmare.js 来自动测试登录网站,我 运行 遇到了一个问题:

用户名:

<input class="form-control" type="text" name="username" placeholder="In-Game Name" autofocus="autofocus" value="">

密码:

<input class="form-control" type="password" name="password" placeholder="Not your In-game password">

据我所知,关注这些的唯一方法是使用附加到它的 class,但由于它们是相同的,所以只关注用户名。

这是我的代码:

const Nightmare = require("nightmare");
const assert = require("assert");

describe("Login Page", function() {
  this.timeout("30s");

  let nightmare = null;
  beforeEach(() => {
    nightmare = new Nightmare({ show: true });
  });

  describe("given incorrect login", () => {
    it("should fail", done => {
      nightmare
        .goto("https://www.example.com/log-in")
        .on("page", (type, message) => {
          if (type == "alert") done();
        })
        .type(".form-control", "RandomPlayer")
        .type(".form-control", "XFf13lalfla")
        .click(".button")
        .wait(20000)
        .end()
        .then()
        .catch(done);
    });
  });
});

您可以使用属性 select 或 select 仅文本或密码字段。

  • .form-control[name="username"] 用户名,
  • .form-control[name="password"] 密码。

用法示例: