gpt4 book ai didi

selenium - WebdriverIO : How to read baseURL value from wdio. conf.js。内部步骤定义文件

转载 作者:行者123 更新时间:2023-12-04 21:55:51 30 4
gpt4 key购买 nike

我正在使用 WebdriverIO 进行测试自动化。在 wdio.conf.js文件我已经配置了“baseUrl”属性。

我想读取测试中的“baseUrl”属性值.js文件。我怎样才能做到这一点?

最佳答案

❒ wdio-v5
最近,在为项目重写编写了大量测试之后,我开始相信存储/访问全局配置变量的最佳方法是通过 global目的。
您可以在 wdio.conf.js 中定义它们。文件的钩子(Hook)。我在 before 中定义了我的钩:

before: function (capabilities, specs) {
// =================
// Assertion Library
// =================
const chai = require('chai');
global.expect = chai.expect;
global.assert = chai.assert;
global.should = chai.should();
// ======================
// Miscellaneous Packages
// ======================
global.langCode = langCode;
global.countryCode = countryCode;
global.request = require('superagent');
global.allowedStatusCodes = [200, 301],
// ===============
// Custom Commands
// ===============
require('./test/custom_commands/aFancyMethod');
require('./test/custom_commands/anotherOne');
require('./test/custom_commands/andAnotherOne');
},
然后,您可以直接访问它们, 测试文件或页面对象中的任何位置 .这样,您可以大大减少测试文件的占用空间(错误...代码打印),因为您可以在测试用例中直接调用它们:
describe(`Testing a random URL`, () => {
it('Should return a HTTP valid status code', async () => {
// Issue a HTTP request for the given URL:
await request
.head('https://random.org')
.then(res => {
console.info(`\n> Status code found: ${res.status} | MIME type found: '${res.type}'\n`);
foundStatusCode = res.status;
})
.catch(err => {
console.info(`\n> Status code found: ${err.status} | Error response found: '${JSON.stringify(err.response)}'\n`);
foundStatusCode = err.status;
});
// Assert the HTTP Status Code:
assert.include(allowedStatusCodes, foundStatusCode, `!AssertError: Route yields a bad status code! Got: ${foundStatusCode} | Expected: ${allowedStatusCodes}`);
});
而不是总是做 await browser.options.request.head(... , browser.options.baseUrl , ETC。

❒ wdio-v4
所有 wdio.conf.js文件属性(基本上是 config 对象名称-值对)也存储在 browser.options 中。目的。
因此,从测试内部访问全局配置值的更优雅的方法如下所示:
> browser.options
{ port: 4444,
protocol: 'http',
waitforTimeout: 10000,
waitforInterval: 500,
coloredLogs: true,
deprecationWarnings: false,
logLevel: 'verbose',
baseUrl: 'http://localhost',
// ... etc ...
}

> browser.options.baseUrl
'http://localhost'

我会在这里冒险并假设您想阅读 baseUrl来自您的 wdio.config.js 的值(value)文件,进入您的 test.js文件。
TL;DR: 在您的 test.js文件标题,添加以下内容: var config = require('<pathToWdioConfJS>/wdio.conf.js').config;然后您可以访问任何 wdio.config.js通过 config.<configOption> 获取值, 在你的情况下 config.baseUrl .

最后,我会 强烈推荐你读到了 exports and module exports .
WebdriverIO 是基于 NodeJS 构建的,所以如果您不知道如何以及何时使用 exports,从长远来看,您将自食其果。 , module.exports , require ,或者它们之间的区别。

关于selenium - WebdriverIO : How to read baseURL value from wdio. conf.js。内部步骤定义文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44571364/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com