Как вызвать функцию из файла конфигурации теста webdriverio
URL-адрес показывает конфигурацию тестера WebdriverIO
https://webdriver.io/docs/configurationfile.html
У него много крючков. Рассмотрим крюк onComplete
Я хочу написать функцию, может быть a function to create a file
, В другом файле и вызовите эту функцию внутри onComplete
крюк. Не могли бы вы помочь мне достичь этого.
1 ответ
Возможно , поздно, но вот как это сделать:
/ ** файл для сохранения вашей функции должен быть в es5 или вам нужно добавить babel, чтобы скрыть его в es6 перед запуском WebdriverIO ** /
test.js
module.exports = function foo(){
console.log('here');
}
в файле конфигурации // перед export.config:
const foo = require('path-to-test.js');
используйте foo() в хуке onComplete()
Да, вы в значительной степени описали поток.
Определите свою функцию в файле и экспортируйте ее:
module.exports = (() => {
/** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* > Def: Polls the DOM until the given 'desiredState' is found.
* @param {string} desiredState ['loading', 'interactive', 'complete']
* @returns {Promise} WebdriverIO Promise
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
browser.addCommand('waitForReadyState', (desiredState) => {
let foundState;
browser.waitUntil(() => {
foundState = browser.execute('return document.readyState;');
console.log(`\n> Waiting for page to load ... | Current state: '${foundState}'`);
return foundState === desiredState;
}, browser.options.waitforTimeout, `Timeout before expected state! Found: '${foundState}' | Expected: '${desiredState}'`);
});
})();
Затем импортируйте его в желаемом хуке (например: для команды custom_command, before
крюк):
before: function (capabilities, specs) {
require('./test/custom_commands/waitForReadyState');
}
Вы можете легко воспроизвести модель, чтобы реализовать функции ведения журнала и манипулирования файлами, которые вам нужно запустить в onComplete
крюк.