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

Node.js selenium webdriver - Get browser capabilities inside test?

本文关键字:获取 浏览器 功能 测试 js selenium webdriver Node      更新时间:2023-09-26

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

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

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

如何从测试中获取"所需功能"对象?

或者我怎样才能通过测试才能使用它?

编辑

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

我正在寻找一种方法来获取实际使用的浏览器功能,如Selenium wiki上记录的那样:

如果会话无法支持在 所需的功能,不会抛出错误;只读功能 返回指示会话功能的对象 实际上支持。

使用

WebDriverJS(你提到你可以切换到它(,你可以使用 getCapabilities

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

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

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