我正在使用量角器-黄瓜框架(量角器5.2.2和黄瓜3.2.0)。我需要使用多个用户凭据登录。所以我需要使用隐身窗口。所以我已经在给定的配置文件中进行了设置在下面。
capabilities: {
'browserName': 'chrome',
chromeOptions: {
args: ["--incognito"]
}
},
我已经添加了
browser.restart();
每个注销代码之后。但是当我打开新的隐身窗口时,我无法访问onPrepare函数内部的代码。我的onPrepare函数如下所示。
onPrepare: function() {
browser.ignoreSynchronization = true;
browser.manage().window().maximize();
global.testdata = require('./support/testdata.js');
}
所以每次打开浏览器时如何访问onPrepare函数内部的代码。谢谢。
答案 0 :(得分:1)
您可以将onPrepare()
中的代码包装到一个函数中,并将该函数导出到.js
文件中。
// onPrepare.js, move the codes in `onPrepare()` at here
module.exports = function onPrepareConfig() {
browser.ignoreSynchronization = true;
browser.manage().window().maximize();
global.testdata = require('./support/testdata.js');
}
// protractor conf.js
onPrepare: function() {
// you need to import `onPrepare.js` within this function
// because the variable `browser` we used in `onPrepare.js`
// are available inside `onPrepare()`
var onPrepareConfig = require('./onPrepare.js');
onPrepareConfig();
}
// the code line where you call browser.restart();
browser.restart();
var onPrepareConfig = require('./onPrepare.js');
onPrepareConfig();
答案 1 :(得分:0)
基于javascript
语言的Node.js,它是一个单线程。因此,每个打开浏览器的测试都在单独的过程中运行,这就是为什么您不需要incognito
模式的原因。问题是如何在多个测试的不同用户之间共享。最简单的方法是:
beforeAll()
中获取凭据,然后从文件中删除此行。测试结束时将其返回。OR