Protractor 从量角器中的onPrepare()传递全局变量

Protractor 从量角器中的onPrepare()传递全局变量,protractor,Protractor,如何在onPrepare()中从conf传递全局变量。因此,它可以在不同的规格中使用 在onPrepare()内部,因为我从onPrepare()中调用的函数中获取值。因此,我们希望使该价值成为全球性的。因此,它可以在所有规范中使用。您可以在onPrepare函数中使用或设置browser.params对象: onPrepare: function () { browser.params.YOUR_PARAM = 'VALUE'; } 在规范中使用: it('should...', f

如何在onPrepare()中从conf传递全局变量。因此,它可以在不同的规格中使用


在onPrepare()内部,因为我从onPrepare()中调用的函数中获取值。因此,我们希望使该价值成为全球性的。因此,它可以在所有规范中使用。

您可以在onPrepare函数中使用或设置browser.params对象:

onPrepare: function () {
    browser.params.YOUR_PARAM = 'VALUE';
}
在规范中使用:

it('should...', function () {
    expect(browser.params.YOUR_PARAM).toEqual('VALUE');
});

您可以在onPrepare函数中使用或设置browser.params对象:

onPrepare: function () {
    browser.params.YOUR_PARAM = 'VALUE';
}
在规范中使用:

it('should...', function () {
    expect(browser.params.YOUR_PARAM).toEqual('VALUE');
});

以下是我是如何实现全局的-我在测试中使用了多个浏览器,因此我需要一些快捷方式来轻松访问这两个浏览器:

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');

希望这有帮助

以下是我是如何实现globals的-我在测试中使用了多个浏览器,因此我需要一些快捷方式来轻松访问这两个浏览器:

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');

希望这有帮助

我已经在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();

  },
规格js

    describe(‘global variable test’, function() {

    it(’should print global variable’, function() {

     console.log(output);

     });
     });

我已经在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();

  },
规格js

    describe(‘global variable test’, function() {

    it(’should print global variable’, function() {

     console.log(output);

     });
     });

当您在配置文件中将shardTestFiles参数设置为true时,它会工作吗?
当我将全局值设置为true时,它有问题。当为false时有效。

在配置文件中将shardTestFiles参数设置为true时有效吗?
当我将全局值设置为true时,它有问题。当为false时有效。

它不适用于browser.params。它不适用于browser.params。它应该-我在最新的3.3.0量角器和量角器附带的jasmine中长期使用它。你能提供你的例子吗?它应该-我使用它很长时间与最新的3.3.0量角器和茉莉花量角器。你能举个例子吗?