如何在webdriverio测试配置文件中调用函数

时间:2019-08-02 20:12:03

标签: node.js webdriver-io webdriver-io-v4

该网址显示了WebdriverIO测试运行程序配置

https://webdriver.io/docs/configurationfile.html

它有很多钩子。考虑我想写一个函数的钩子onComplete,可能是a function to create a file。在另一个文件中,在onComplete挂钩中调用该函数。你能帮我实现这个目标吗?

2 个答案:

答案 0 :(得分:0)

是的,您几乎描述了流程。

在文件中定义功能并导出:

import HomeScreen from "../screens/HomeScreen";
import DashboardScreen from "../screens/DashboardScreen";

然后,将其导入所需的钩子中(例如例如,对于 custom_command 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}'`); }); })(); 钩子):

before

您可以轻松地重现模型,以实现需要在before: function (capabilities, specs) { require('./test/custom_commands/waitForReadyState'); } 挂钩中运行的日志记录和文件操作功能。

答案 1 :(得分:0)

可能晚了,但是您可以通过以下方法来完成它:

/ **文件以使您的功能保持在es5中,或者您必须在WebdriverIO启动** /

之前添加babel使其隐蔽到es6中。

test.js

module.exports = function foo(){
   console.log('here');
}

在配置文件中//在export.config之前:

const foo = require('path-to-test.js');

在onComplete()挂钩中使用foo()