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

时间:2014-12-02 07:04:14

标签: javascript node.js selenium selenium-webdriver webdriver

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

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

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

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

或者我如何将其传递给测试以便它可用?

修改

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

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

  

如果会话无法支持请求的功能   期望的能力,没有错误;只读功能   返回指示会话功能的对象   实际上支持。

1 个答案:

答案 0 :(得分:3)

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

browser.getCapabilities().then(function (caps) {
    console.log(caps);
});

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

browser.getCapabilities().then(function (caps) {
    console.log(caps.get("browserName"), caps.get("version"));
});