在测试之间保持饼干守夜硒

时间:2016-08-20 16:45:26

标签: selenium cookies nightwatch.js

我需要保留一些饼干从测试到测试,我使用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"
}
  },

任何帮助都是相关的。感谢

3 个答案:

答案 0 :(得分:1)

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

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

请注意,setCookie在客户导航到相关域之前无效。

答案 1 :(得分:0)

尝试使用nightwatch功能提供一套用于一次或多次测试的cookie。

http://nightwatchjs.org/api/setCookie.html

此致

答案 2 :(得分:-1)

我们如何在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)
                    });
            });