如何在' wdio.conf.js中读取baseURL值。从步骤定义.js文件

时间:2017-06-15 15:23:47

标签: selenium automation webdriver-io cucumberjs

我正在使用webdriverio进行测试自动化。在wdio.conf.js文件中,我已经配置了' baseUrl'属性。我想准备好'baseUrl'我的测试.js文件中的属性值。请帮我看一下baseUrl'价值!

5 个答案:

答案 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.exportsrequire,{{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)