2015-11-29 3 views
1

Я хотел бы знать, как использовать beforeEach в webdriver-io. Я тестирую CMS и хочу быть в состоянии войти в систему перед каждым тестом и думать, что beforeEach будет хорошо, однако это не сработает. Терминал говорит, что есть ошибка, и элемент не может быть найден. Я в основном хочу, чтобы он регистрировал меня в любое время без необходимости писать browser.login().Использование beforeEach в webdriver-io

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.

Я также попытался вернуть вызов функции.

ответ

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 
    }); 
}); 
+0

Хорошо, но вам нужно будет использовать loginHelper(); каждый раз, когда я хотел войти в каждый блок, как вы деминистрировали. Как я буду использовать это с помощью beforeEach? Есть ли способ сделать это в ES 5? –

+0

Я не могу говорить о реализации в ES5, но это было бы простое обновление, чтобы использовать hook для запуска процедуры 'login'. – Noffica

Смежные вопросы