我需要保留一些饼干从测试到测试,我使用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"
}
},
任何帮助都是相关的。感谢
答案 0 :(得分:1)
自v0.9.14起,setCookie不会在测试之间保留cookie。看起来客户端是为每个测试重新创建的。
我所做的是创建一个custom command来设置和缓存cookie值。这适用于维护测试之间的*身份验证状态,因为自定义命令是单例。实际身份验证只发生一次,然后后续调用使用setCookie和缓存的会话值。
请注意,setCookie在客户导航到相关域之前无效。
答案 1 :(得分:0)
答案 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)
});
});