Javascript 清除噩梦中的缓存(Electron)
我使用噩梦js登录到一个在本地存储中设置令牌的站点。但是,我运行的任何未来测试用户都已登录。我猜本地存储区没有被清理。有没有办法做到这一点?我在test.js中的代码Javascript 清除噩梦中的缓存(Electron),javascript,local-storage,electron,nightmare,Javascript,Local Storage,Electron,Nightmare,我使用噩梦js登录到一个在本地存储中设置令牌的站点。但是,我运行的任何未来测试用户都已登录。我猜本地存储区没有被清理。有没有办法做到这一点?我在test.js中的代码 require('mocha-generators').install(); var Nightmare = require('nightmare'); var expect = require('chai').expect; describe('test login', function() { var nightmar
require('mocha-generators').install();
var Nightmare = require('nightmare');
var expect = require('chai').expect;
describe('test login', function() {
var nightmare = Nightmare({show: true})
after(function*() {
yield nightmare.end();
})
it('should login given right credentials', function*() {
this.timeout(50000);
console.log("running test");
var link = yield nightmare
.goto('http://127.0.0.1:3000/login')
.wait(1000)
.type('.email-field', 'username@email.com')
.type('.password-field', 'password')
.click('.login button')
.wait(1000)
});
})
我使用:mocha
测试运行正常并关闭。但是,当我再次运行时,用户开始登录。在噩梦EJS中是否有清除缓存或本地存储的方法
Electron有一种方法可以通过
session.clearCache
()清除会话信息,但我不知道如何从噩梦中访问会话对象。好吧,我们可以使用Electron的“web首选项”属性
var nightmare = Nightmare({
show: false,
webPreferences: {
partition: 'nopersist'
}
});
启动噩梦时,请使用“web prefences”分区属性来处理会话。更多信息请点击此处:。其要点如下:
该页面将使用一个持久会话,该会话可用于应用程序中具有相同分区的所有页面。如果没有persist:前缀,则页将使用内存会话
因此,基本上如果您将噩梦初始化为:
var nightmare = Nightmare({
show: false,
webPreferences: {
partition: 'persist:derp'
}
});
然后会话将在“derp”下持久化,当您在经过身份验证的路由内测试功能时,这会很有帮助。(derp不显著,可以是以下任何内容:持续:)
如果不希望会话持久化,请不要使用持久化:。我使用的是nopersist,但这可以是任何没有前缀persist:
编辑:
show:false
对会话没有意义,它只显示了如果您设置show:true
,electron(噩梦使用的)正在做什么,但这行可以删除您明白了吗?只是想知道。谢谢。@FelixG回答如下:似乎属性名实际上是webPreferences,而不是web Preferences依赖于噩梦的版本,他们可能已经将其更新为新版本。Maksim hi5!webPreferences itis@Saad更新你的答案。正确的属性现在是webPreferences
。