Node.js selenium webdriver - 在测试中获取浏览器功能?

Mal*_*lki 5 javascript selenium webdriver node.js selenium-webdriver

我在 node.js 上使用 selenium webdriver(目前通过 webdriverio,但我不介意切换到 webdriverjs 或 wd)。

我在不同的浏览器上运行了一些测试,并希望保存每个测试的结果以及有关浏览器的信息,例如:

  • 测试 1 - chrome - 199 个断言,0 次失败,0 次跳过
  • 测试 1 - IE9 - 199 个断言,0 次失败,0 次跳过
  • 等等..

如何从测试中获取“desiredCapabilities”对象?

或者我怎样才能将它传递给测试以便它可用?

编辑

我发现它browser.desiredCapabilities返回了请求的功能对象,但现在我意识到我实际上需要使用“实际功能”(例如,如果我在只有 IE11 的机器上要求 IE8,我得到 IE11,但所需的 Capabilities 对象显示版本 = 8)。

我正在寻找一种方法来获取实际使用的浏览器功能,如selenium wiki 上所述:

如果会话不能支持所需功能中请求的功能,则不会抛出错误;返回一个只读的功能对象,指示会话实际支持的功能。

Lou*_*uis 5

使用WebDriverJS(您提到您可以切换到),您可以使用getCapabilities:

browser.getCapabilities().then(function (caps) {
    console.log(caps);
});
Run Code Online (Sandbox Code Playgroud)

上面的代码只会转储功能,但您应该使用Capabilities类的方法来检查值。例如:

browser.getCapabilities().then(function (caps) {
    console.log(caps.get("browserName"), caps.get("version"));
});
Run Code Online (Sandbox Code Playgroud)