在测试 nightwatch selenium 之间保留 cookie

Keep cookies between tests nightwatch selenium

我需要在测试中保留一些 cookie,我正在使用 Nightwatch 和 Selenium,我不知道如何为当前会话获取它们或将它们存储在哪里。

我尝试创建并设置一个帐户,但似乎也不起作用

 "selenium" : {
"start_process" : false,
"server_path" : "",
"log_path" : "",
"host" : "127.0.0.1",
"port" : 4444,
"cli_args" : {
  "webdriver.chrome.driver" : "",
  "webdriver.ie.driver" : "",
  "webdriver.firefox.profile" : "webdriver"
}
  },

感谢任何帮助。谢谢

从 v0.9.14 开始,setCookie 不会在测试之间保留 cookie。看起来客户端是为每个测试重新创建的。

我所做的是创建一个 自定义命令 来设置和缓存 cookie 值。这适用于维护*测试之间的身份验证状态,因为自定义命令是单例。实际的身份验证只发生一次,然后后续调用使用 setCookie 和缓存的会话值。

请记住,在客户端导航到相关域之前,setCookie 不会工作。

我们如何在 Nightwatch 中设置 cookie。我在 Supertest 中尝试过它的作品。 守夜人怎么做。

下面是使用 superTest 的代码

var args = {

            data: {
                    email: "xxxx",
                    password: "xxxx"
                },
                headers: {
                    "Content-Type": "application/json"
                }
            };
            service.post("localhost", args, function(data, response) {
                global.Cookies = response.headers['set-cookie'].pop().split(';')[0]
                this.meServiceUrl = superTest.agent("localhost/users").get('');
                // Set cookie to get saved user session
                this.meServiceUrl.cookies = Cookies;
                this.meServiceUrl.set('Accept', 'application/json')
                    .expect('Content-Type', /json/)
                    .expect(200)
                    .end(function(err, res) {
                        usersApiResponse = res.body
                        usersServiceResponse.push(usersApiResponse)
                    console.log(usersServiceResponse)
                        console.log(usersApiResponse.result.length)
                    });
            });