Может ли watir-webdriver регистрировать ошибки консоли? - PullRequest
15 голосов
/ 08 сентября 2011

Мне интересно, есть ли у watir-webdriver возможность регистрировать вывод ошибок консоли? Это было бы эквивалентно открытию консоли вручную в браузере и отслеживанию ошибок JS при загрузке страницы. Могу ли я перехватить это через watir-webdriver и включить log / error?

Ответы [ 3 ]

2 голосов
/ 08 декабря 2015

Если кому-то будет полезно - это решение должно работать:

def check_console_log
    console_log = @browser.driver.manage.logs.get(:browser)
    if console_log != nil
      raise(console_log)
    end
end
1 голос
/ 30 июня 2016

Я основал свое решение на ответ Кириками , огурец не нужен. Этот подход печатает только консоль javascript Errors (без предупреждений, информации, журналов или отладки).

def print_js_errors
  log = @browser.driver.manage.logs.get(:browser)
  errors = log.select{ |entry| entry.level.eql? 'SEVERE' }
  if errors.count > 0
    javascript_errors = errors.map(&:message).join("\n")
    raise javascript_errors
  end
end

Тогда, если вы используете rspec, вы можете сделать это:

RSpec.configure do |config|
  config.after :each do
    print_js_errors
  end
end

Плюсы:

  1. Вы по-прежнему получаете нормальный вывод RSpec для тестов, которые Pass
  2. Вы по-прежнему получаете любые сообщения об ошибках, генерируемые watir-webdriver для тестов, которые Fail (например, время ожидания, элемент не найден и т. Д.)
  3. Когда генерируется ошибка JavaScript, она добавляется в вывод результатов теста RSpec

Минусы:

  1. Первые две строки print_js_errors выполняются после каждого теста
1 голос
/ 29 мая 2012

При использовании watir-webdriver в сочетании с Cucumber ошибки, если таковые имеются, выводятся в html-файл, который очень хорошо отформатирован и содержит ошибки watir-webdriver.

Это можно сделать, добавив следующие флаги в ваш профиль по умолчанию в cucumber.yml:

--color --format pretty --format html -o results.html Подробнее об этом файле здесь. Вот немного фона для огурца .

Однако, если вы используете из консоли только watir-webdriver, вы можете перенаправить ошибки watir-webdriver в файл, выполнив следующие действия:

$ ruby your_watir_script.rb 2> watir_debug.log #watir outputs errors as stderr

В большинстве случаев, если что-то в watir выходит из строя (например, элемент не может быть найден), то все после этого также не работает, поэтому полезно, чтобы что-то вроде Cucumber управляло вашей автоматизацией на основе сценария. *

...