先进行测试,然后再继续硒

时间:2018-07-30 09:32:54

标签: javascript selenium

我正在使我的应用程序自动化,我们为每项测试重复了一系列步骤。为了优化这一点,我所做的就是将这些初始步骤导出到一个单独的函数中,我在测试中将其调用。

以下是我的代码外观的示例:

// common-test file
class MyCommonTask {
  async function commonSteps() {
    describe('Run common steps', () => {
      it('Step 1', () => { ... })
      it('Step 2', () => { ... })
      it('Step 3', () => { ... })
    })
  }
}
export const CommonTask = new MyCommonTask();

// My test file
import { CommonTask } from 'common-test';
const webDriver = ...;

describe('My Test', () => {
  beforeEach(...)
  it('Running common steps', async () => {
    await CommonTask.commonSteps();
  });

  it('Pause', () => {
    webDriver.sleep(2000);
  })
})

问题是,pause测试没有等待上一个it完成。我怎样才能做到这一点?我以为it等待上一个it完成,但那没有发生。

我曾考虑使用webDriver.sleep(bigAmount),但这将是一个修补程序。有没有更好/适当的方法来处理它?<​​/ p>

假设it返回promise,我什至尝试遵循

describe('My Test', async () => {
  beforeEach(...)
  await it('Running common steps', async () => {
    await CommonTask.commonSteps();
  });

  it('Pause', () => {
    webDriver.sleep(2000);
  })
})

但是仍然不起作用。 pause it被立即调用。我什至尝试使用.then,但从未调用其中的函数。

如果这是一个明显/天真的问题,我表示歉意!

0 个答案:

没有答案