【问题标题】:Using beforeEach in webdriver-io在 webdriver-io 中使用 beforeEach
【发布时间】:2015-11-29 18:17:48
【问题描述】:

我想知道如何在 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。

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

【问题讨论】:

    标签: javascript automated-tests webdriver-io


    【解决方案1】:

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

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

    然后调用这个 helper 方法例如

    'use strict';
    
    import loginHelper from '../path/login_helper.js';
    
    describe ('...', () => {
      beforeEach(function *() {
        yield* loginHelper();
      });
    
      it('...', function *() {
        // steps
      });
    });
    

    【讨论】:

    • 好的,但是你必须使用 loginHelper();每次我想登录每一个它都会阻止你演示。我如何将它与 beforeEach 一起使用?有没有办法在 ES 5 中做到这一点?
    • 我无法谈论 ES5 中的实现,但使用钩子运行 login 过程将是一个简单的更新。
    猜你喜欢
    • 2019-05-13
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    相关资源
    最近更新 更多