WDIO:如何访问在beforeAll中声明的describe块中的变量?

时间:2017-10-25 17:21:48

标签: webdriver-io

我有近20个要声明的变量,所以我不想为每个测试声明它们。我想在beforeAll()中声明它们,但我认为这不起作用。如何声明一次变量(在beforeAll或其他地方),并在多次测试中访问它们?

这不起作用:

const assert = require('assert');

beforeAll(() => {
  browser.url('example.com');
  // ### declare a bunch of variables ###
})

describe('something', () => {
  it('should do cool stuff', () => {
    // access a bunch of variables

  });
});

这也不是:

const assert = require('assert');

beforeAll(() => {
  browser.url('example.com');
})

describe('something', () => {
  // ### declare a bunch of variables ###
  it('should do cool stuff', () => {
    // access a bunch of variables

  });
});

1 个答案:

答案 0 :(得分:1)

呃,我知道我错过了一些简单的东西,我甚至在使用过这种方法之前......

在与测试相同的目录中创建名为config.js的文件或任何您想要的文件。声明该文件中的所有变量,如此

module.exports = {
  get var1 () { return browser.element(yourSelector); },
  get var2 () { return browser.element(yourSelector); },      
  ...
  get var20 () { etc },
}

然后在spec文件的顶部,需要上面的文件,如const gv = require('./config.js');

使用此gv.var1.click()gv.var2.whatever()之类的变量。