2014-12-02 3 views
3

Я использую selenium webdriver на node.js (в настоящее время через webdriverio, но я не против переходить на webdriverjs или wd).Node.js selenium webdriver - Получить возможности браузера внутри теста?

Я несколько тестов на разных браузерах и хочу сохранить результаты каждого теста вместе с информацией о браузере, например:

  • Тест 1 - хром - 199 утверждений, 0 неудачи, 0 пропущено
  • Тест 1 - IE9 - 199 утверждений, 0 неудачи, 0 пропущено
  • и т.д ..

Как я могу получить "desiredCapabilities" объект внутри теста?

Или как я могу передать его на тест, чтобы он был доступен?

EDIT

Я обнаружил, что browser.desiredCapabilities возвращает запрошенную возможности объекта, но теперь я понимаю, что на самом деле нужны «реальные возможности» используются (например, если я прошу IE8 на машине, которая имеет только IE11 I получить IE11, но объект желаемого объекта показывает версию = 8).

Я ищу способ, чтобы получить фактические используемые возможности браузера, как описано на selenium wiki:

If a session cannot support a capability that is requested in the desired capabilities, no error is thrown; a read-only capabilities object is returned that indicates the capabilities the session actually supports.

ответ

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")); 
}); 
+0

Я получаю TypeError: Объект # не имеет метода getCapabilities. Какую реализацию вы используете? – Malki

+0

Я использую [WebDriverJS] (https://code.google.com/p/selenium/wiki/WebDriverJs). Оглядываясь назад на ваш вопрос, я понимаю, что вы упоминаете webdriverio наверху. Я пропустил это. – Louis

Смежные вопросы