如何从onPrepare()中的conf传递全局变量。因此它可以用于不同的规格。
在onPrepare()中,因为我从onPrepare()中调用的函数中获取值。所以想把这个价值变成全球的。这样它就可以在所有规范中使用。
答案 0 :(得分:3)
您可以在onPrepare函数中使用或设置browser.params对象:
onPrepare: function () {
browser.params.YOUR_PARAM = 'VALUE';
}
在规范中使用:
it('should...', function () {
expect(browser.params.YOUR_PARAM).toEqual('VALUE');
});
答案 1 :(得分:3)
以下是我如何做全局变量 - 我在测试中使用多个浏览器,所以我需要一些快捷方式来轻松访问这两个浏览器:
onPrepare: function() {
// Making manager and user globals - they will be accessible in all tests.
global.manager = browser;
global.user = browser.forkNewDriverInstance();
...
//Making Expected Conditions global since it used widely.
global.EC = protractor.ExpectedConditions;
然后只需拨打
即可随处访问manager.$('blabla').click();
user.$('blabla').click();
user.wait(EC.visiblityOf($('foo')), 5000, 'foo should be visible');
希望这有帮助!
答案 2 :(得分:1)
我已经在gitter中发布了答案,你可以检查出基本上你应该使用'global'
helper.js - >您想要执行的常用功能/方法
module.exports = {
foo: 'bar',
doSomething: function () {
var sum = 1+1;
return sum;
}
};
config.js
var helper = require('./helper.js’);
onPrepare: function () {
global.output = helper.doSomething();
},
spec.js
describe(‘global variable test’, function() {
it(’should print global variable’, function() {
console.log(output);
});
});
答案 3 :(得分:-1)
在配置文件中将shardTestFiles参数设置为true时,它会起作用吗? 当我将其设置为true时,我遇到了全局值的问题。在错误时起作用。