首页 > 解决方案 > Webdriver.io - 很可能无法加载规范文件,因为它们依赖于“浏览器”对象

问题描述

我正在使用 Webdriver.io 在大量页面上运行测试。因为页面的所有规范都在 JSON 文件中,所以我有一个特殊的类来设置测试。它看起来像这样:

module.exports = class PageTester {
    suiteName = '';
    browser = {};

    constructor (suiteName, browser) {
        this.suiteName = suiteName;
        this.browser = browser;
    }

    testModel(currentModel) {

        describe(this.suiteName + ' endpoint ' + currentModel.url, () => {
            this.browser.url(currentModel.url);
    
            /* it() statements for the test */

        });
    }        
}

然后在我的规范文件夹中,我有一个加载 JSON 并将其插入 PageTester 类的文件,如下所示:

const PageTester = require('../modules/PageTester');

const models = require('/path/to/some/file.json');
const pageTester = new PageTester('Some Name', browser);

for (const modelName in models) {
    pageTester.testModel(models[modelName]);
}

当我运行这段代码时,WebdriverIO 给了我以下警告:

WARN @wdio/mocha-framework: Unable to load spec files quite likely because they rely on `browser` object that is not fully initialised.
`browser` object has only `capabilities` and some flags like `isMobile`.
Helper files that use other `browser` commands have to be moved to `before` hook.
Spec file(s): /suite/test/specs/test.js

所有的测试似乎都运行良好,所以我实际上不明白这个警告在抱怨什么以及忽略它可能会产生什么负面后果。所以我想a)理解为什么会发生这种情况,b)考虑到我的代码设置方式,如何摆脱这个警告。

标签: javascriptseleniumwebdrivermocha.jswebdriver-io

解决方案


就我而言,我通过修复文件的路径来 解决它。我注意到我的路径是错误的。但是 wdio 抛出的错误并没有真正的帮助。:/require


推荐阅读