我正在将 NightmareJS 与 Mocha 一起使用。一切似乎都很好,但是我在分离测试时遇到了问题,因为我的会话不会通过不同的测试用例持续存在。
第一个测试通过了,但是第二个测试Should be able to edit
失败了,因为即使我使用了分区选项,我最终还是在同一个登录页面上。我该如何克服呢?
require('mocha-generators').install();
var Nightmare = require('nightmare');
var expect = require('chai').expect;
describe('Nightmare JS tests', function() {
this.timeout(30000);
var url = 'http://localhost/app/';
describe('base functionality', function() {
it('Should be able to login', function*() {
var nightmare = Nightmare({
show: true,
'webPreferences': {
partition: 'persist:somesession'
}
});
var result = yield nightmare
.goto(url)
.wait('.login')
.click('.login')
.wait('h4.heading')
.wait(1000)
.evaluate(function () {
return document.querySelector('h4.heading').innerHTML;
})
.end();
expect(result).to.equal("This is heading");
});
it('Should be able to edit', function*() {
var nightmare = Nightmare({
show: true,
'webPreferences': {
partition: 'persist:somesession'
}
})
var result = yield nightmare
.goto('http://localhost/app/company')
.wait("button.edit")
.click("button.edit")
.wait("input[type='text']")
.insert("input[type='text']", false)
.insert("input[type='text']", "This is some address")
.click("button[type='submit']")
.wait("div.success")
.evaluate(function () {
return document.querySelector("div.success").innerText;
})
.end()
expect(result).to.contain("Updated!");
});
});
});