javascript - 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)考虑到我的代码设置方式,如何摆脱这个警告。
解决方案
就我而言,我通过修复文件的路径来 解决它。我注意到我的路径是错误的。但是 wdio 抛出的错误并没有真正的帮助。:/require
推荐阅读
- python - 在 Bokeh 中更新网络图
- typescript - 如何在 TS 中扁平化 obj
- python - 在 python 代码中出现“NoReverseMatch”错误
- r - 使用 R 获取该期间的所有周数
- laravel - Laravel 添加/删除输入字段更新值问题
- javascript - Javascript - 如果子字符串前面没有添加字符 Regex 或其他字符,则替换子字符串
- java - 从 Netlogo 扩展分别返回多个值
- django - 如何在 Django-summernote 中附加图像文件?
- r - 基于 Shiny 中最近输出的自动滚动
- c# - 在 C# 中清除 flowlayoutpanel 控件时创建窗口句柄时出错?