该 url 显示了 WebdriverIO 测试运行器配置
https://webdriver.io/docs/configurationfile.html
它有很多钩子。onComplete
考虑我想写一个函数的钩子,可能是a function to create a file
. onComplete
在另一个文件中并在钩子中调用该函数。你能帮我实现这个目标吗?
该 url 显示了 WebdriverIO 测试运行器配置
https://webdriver.io/docs/configurationfile.html
它有很多钩子。onComplete
考虑我想写一个函数的钩子,可能是a function to create a file
. onComplete
在另一个文件中并在钩子中调用该函数。你能帮我实现这个目标吗?
它可能晚了,但你可以这样做:
/** 保持你的函数的文件应该在 es5 中,或者你必须在 WebdriverIO 启动之前添加 babel 以将其转换为 es6 **/
测试.js
module.exports = function foo(){
console.log('here');
}
在配置文件中 //export.config 之前:
const foo = require('path-to-test.js');
在 onComplete() 钩子中使用 foo()
是的,你几乎描述了流程。
在文件中定义您的函数并将其导出:
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
挂钩中运行的日志记录和文件操作功能。