我正在使用webdriverio进行测试自动化。在wdio.conf.js文件中,我已经配置了' baseUrl'属性。我想准备好'baseUrl'我的测试.js文件中的属性值。请帮我看一下baseUrl'价值!
答案 0 :(得分:5)
LE: 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
值读入您的test.js
文件中。
TL; DR:在test.js
文件标题中,添加以下内容:
var config = require('<pathToWdioConfJS>/wdio.conf.js').config;
然后,您可以wdio.config.js
通过config.<configOption>
访问任何config.baseUrl
值。exports
。
最后,我会强烈推荐您阅读 exports and module exports 。
WebdriverIO建立在NodeJS之上,如果您不知道如何以及何时使用module.exports
,require
,{{1},那么您将从长远来看自己的脚步。 },或者它们之间的区别。
答案 1 :(得分:3)
使用browser.options.baseUrl。如果使用require,则需要从该文件中进行硬编码,这很好,但是您不能执行wdio --baseUrl = http://myTestSite2.net来覆盖“全局” baseUrl。您将来可能希望在多个部署中执行此操作。
答案 2 :(得分:0)
只需将所有变量保存在before:函数中,即可在测试中的任何地方使用。 像以下示例一样,我使用重试计数wdio配置文件
before: function (capabilities, specs) {
expect = require('chai').expect;
should = require('chai').should();
assert = require('assert');
retryCount=2;
browser.maximizeWindow();
答案 3 :(得分:0)
在 wdio.config.js 文件中定义这样的网址
var baseUrl = 'YOUR URL'
exports.config = {
baseUrl: baseUrl,
}
在测试文件中,使用/
而不是在browser.url('/')
中添加完整的url,它将使用 wdio.config.js 文件中的baseUrl。
browser.url('/')
答案 4 :(得分:0)
BaseUrl在配置对象browser.config.baseUrl中可用 参见https://github.com/webdriverio/webdriverio/blob/a4a5a46f786f8548361d7f86834b38f89dcb1690/packages/webdriverio/webdriverio-core.d.ts#L131