1

我想知道如何在 webdriver-io 中使用 beforeEach。我正在测试一个 CMS,并希望能够在每次测试之前登录并认为 beforeEach 会很好,但这不起作用。终端说有错误,找不到元素。我基本上希望它每次都让我登录,而不必编写 browser.login()。

browser.addCommand('login', function () {
    return this
        .url('/admin/index.php')
        .setValue('[name="username"]', 'foo')
        .setValue('[name="password"]', 'bar')
        .click('[name="login"]');
});

那是我的登录命令。

beforeEach(function(){
     browser.login();
});

这是我的beforeEach。

我也尝试过返回函数调用。

4

1 回答 1

1

您可以将登录步骤保存为辅助方法。

module.exports = function *() {
  // steps required for successful login
}

然后调用这个辅助方法,例如

'use strict';

import loginHelper from '../path/login_helper.js';

describe ('...', () => {
  beforeEach(function *() {
    yield* loginHelper();
  });

  it('...', function *() {
    // steps
  });
});
于 2015-12-04T00:05:33.113 回答