Блог вебразработчика
  • ГЛАВНАЯ
  • ПОДПИСКА

Selenium WebDriver: логи браузера

Ноя28
2012
Написал Tatyana

Недавно вышел новый релиз библиотеки Selenium 2.26. В этом релизе для Firefox была реализована возможность получения логов браузера через интерфейс WebDriver. Именно об этой функциональности пойдет речь в данной статье.

В Mozilla Firefox есть консоль ошибок, куда выводятся все ошибки на странице, связанные с JavaScript, CSS и не только. Открывается она с помощью меню «Веб-разработка->Консоль ошибок» или комбинацией клавишь Ctrl+Shift+J. Отслеживание ошибок JavaScript во время выполнения теста бывает достаточно важным, даже если они не привели к падению теста. Такие ошибки могут носить разный характер, приводить к появлению или исчезновению элементов, или полностью ломать логику работы страницы.

Получить доступ к такому логу через вебдрайвер можно следующим образом:

for (LogEntry logEntry : driver.manage().logs().get("browser").getAll()) {
	  System.out.println(logEntry);
}

Но полный объем полученных данных может быть очень большим и, в основном, состоять из предупреждений, касающихся CSS. Для того, чтобы отсеять ненужную информацию можно отфильтровать лог по степени важности. Ошибки Javascript относятся к сообщениям серьезного сбоя и получить их можно с уровнем Level.SEVERE:

for (LogEntry logEntry : driver.manage().logs().get("browser")
	  	  	  	  	  	  	  	  	  	  	  	.filter(Level.SEVERE)) {
	  System.out.println(logEntry);
}

Пример ошибки в консоле Firefox:

Вывод лога последнего примера в консоль:

[2012-11-27T18:12:40+0200] [SEVERE] TypeError: e(document).on is not a function

Полученные данные из лога браузера можно сохранять отдельным файлом и просматривать после выполнения теста.

К сожалению, в выводе ошибки отсутствует какая-либо информация про то, где она была обнаружена. Поэтому сбор таких ошибок сам по себе не принесет никакой пользы. Чтобы сузить круг поиска ошибок в скриптах, можно, как минимум, определить url страницы, на которой эта ошибка произошла. Но для этого нужно довольно часто просматривать лог браузера (после загрузки страницы, нажатий на элементы и пр.) и определять в нем наличие новых записей. Для решения этой задачи может подойти использование WebDriverEventListener.

И, напоследок, снова хочу напомнить, что пока возможность получения логов браузера реализована только для Mozilla Firefox.

  • Нравится
  • Tweet

Опубликовано в Selenium - Помечено FirefoxDriver
Рассказать всем Twitter Facebook Delicious StumbleUpon E-Mail
← Hibernate: запросы с использованием Criteria
DDT с использованием Thucydides и JUnit →

Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/u0420283/data/www/internetka.in.ua/wp-includes/class-wp-comment-query.php on line 405

5 комментариев

  1. Vladislav's Gravatar Vladislav
    03.12.2012 at 05:18 | Permalink

    Спасибо Большое, Очень полезная статья =)

  2. Vladislav's Gravatar Vladislav
    05.12.2012 at 13:54 | Permalink

    Татьяна ловлю ошибку, прописал в классе for (LogEntry logEntry : driver.manage().logs().get(«browser»)
    .filter(Level.SEVERE)) {
    System.out.println(logEntry);
    }

    Тест останавливается, а ошибка в консоль не выводится((( через Консоль ошибок открываю и вижу ошибку. подскажите пожалуйста что надо сделать?
    ошибка такого рода :
    Метка времени: 05.12.2012 17:51:46
    Ошибка: TelemetryStopwatch: key «FX_SESSION_RESTORE_COLLECT_DATA_MS» was already initialized
    Источник: resource://gre/modules/TelemetryStopwatch.jsm
    Строка: 53

    • Tatyana's Gravatar Tatyana
      05.12.2012 at 14:04 | Permalink

      Тест «останавливается», в смысле с ошибкой? Скорее всего не вовремя получаете лог, либо слишком поздно — если ошибка была критичная для драйвера, либо рано — ошибки может еще не быть в консоле. Попробуйте убрать на время проверку в самом тесте, на которой он падает, и посмотреть выведется ли ошибка браузера в консоль.

  3. Vladislav's Gravatar Vladislav
    06.12.2012 at 06:03 | Permalink

    Татьяна решил проблему след образом.
    в файл C:\Program Files (x86)\Mozilla Firefox\defaults\pref\channel-prefs.js
    добавил :
    pref(«toolkit.telemetry.prompted», 2);
    pref(«toolkit.telemetry.rejected», true);
    pref(«toolkit.telemetry.enabled», false);

    Тесты стали выполняться быстрее. и скрипт этот не блокирует выполнение моих тестов)

  4. Владимир's Gravatar Владимир
    01.09.2016 at 06:06 | Permalink

    Здравствуйте, Татьяна!
    Спасибо большое Вам за ваш труд.
    Продолжайте в том же духе.

    Вопрос по логированию.
    Где нужно вызывать метод вывода логов в jUnit, после теста или после каждого действия драйвера?
    Спасибо.

Свежие записи

  • WebDriver и SSL Untrusted certificate
  • Видеозапись выполнения тестов Selenium
  • Selenium WebDriver: basic авторизация
  • BrowserMob Proxy + Selenium: автоматизация сбора данных о производительности
  • Hibernate 4: UserType пользовательский тип данных (часть 2)

Поиск

Рубрики

  • Hibernate ORM
  • SEO
  • Разное
  • Тестирование
    • JUnit
    • Selenium
    • Thucydides

Метки

Actions AJAX Alert AutoIt ChromeDriver Exceptions ExpectedConditions FindElement FirefoxDriver Hibernate InternetExplorerDriver Java Javascript Jenkins JUnit4 Maven PageFactory Page Object RemoteWebDriver Select Selenium IDE Selenium Server Selenium WebDriver switchTo Thucydides WebDriverWait XPath Автоматизированное тестирование база данных заработок в сети сеть Интернет скорость продвижения сайта статейное продвижение услуги продвижения

Реклама


Donec in mi a arcu cursus commodo non ut metus. Nunc id eros ut augue consequat tempus ut non ligula. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer pretium, erat sit amet scelerisque euismod, purus lectus convallis dui, eget imperdiet sapien est ut magna. Nullam elementum, tortor vitae pulvinar mattis, orci neque porta tortor, a feugiat nisi lacus quis diam. Ut gravida augue id est rutrum elementum. Mauris eget felis dolor. Phasellus ante ante, porttitor sit amet lobortis ut, suscipit id neque. Fusce hendrerit dolor nec odio eleifend in auctor enim cursus. Nullam fermentum pretium risus, in hendrerit nulla cursus sit amet. Fusce eu tempus elit. Ut tortor velit, aliquam in ornare vel, feugiat sed nibh. Donec fringilla est id odio lacinia vulputate. Donec nulla urna, congue sit amet pretium non, dictum at orci. Fusce neque sem, fermentum eu tempus nec, mattis venenatis sem. Proin scelerisque velit tristique urna mattis adipiscing. Proin mattis faucibus facilisis. Integer non lacus ac ligula accumsan convallis quis molestie erat. Curabitur imperdiet vestibulum vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris lacus ligula, hendrerit eget suscipit in, sollicitudin nec dui. Suspendisse euismod, lorem pretium gravida rhoncus, enim quam facilisis orci, nec volutpat nisi dolor id lacus. Proin dolor arcu, rutrum eget hendrerit vel, pharetra id elit. Nullam porta euismod suscipit. Pellentesque malesuada consequat sem, et auctor magna aliquam gravida. Nullam blandit dignissim iaculis. Suspendisse non diam nec augue scelerisque iaculis. Nam id dui sed lorem vulputate rhoncus eget eu tellus. In sit amet nisi nunc. Fusce sed aliquet sem. Aliquam sit amet metus metus.
Donec in mi a arcu cursus commodo non ut metus. Nunc id eros ut augue consequat tempus ut non ligula. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer pretium, erat sit amet scelerisque euismod, purus lectus convallis dui, eget imperdiet sapien est ut magna. Nullam elementum, tortor vitae pulvinar mattis, orci neque porta tortor, a feugiat nisi lacus quis diam. Ut gravida augue id est rutrum elementum. Mauris eget felis dolor. Phasellus ante ante, porttitor sit amet lobortis ut, suscipit id neque. Fusce hendrerit dolor nec odio eleifend in auctor enim cursus. Nullam fermentum pretium risus, in hendrerit nulla cursus sit amet. Fusce eu tempus elit. Ut tortor velit, aliquam in ornare vel, feugiat sed nibh. Donec fringilla est id odio lacinia vulputate. Donec nulla urna, congue sit amet pretium non, dictum at orci. Fusce neque sem, fermentum eu tempus nec, mattis venenatis sem. Proin scelerisque velit tristique urna mattis adipiscing. Proin mattis faucibus facilisis. Integer non lacus ac ligula accumsan convallis quis molestie erat. Curabitur imperdiet vestibulum vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris lacus ligula, hendrerit eget suscipit in, sollicitudin nec dui. Suspendisse euismod, lorem pretium gravida rhoncus, enim quam facilisis orci, nec volutpat nisi dolor id lacus. Proin dolor arcu, rutrum eget hendrerit vel, pharetra id elit. Nullam porta euismod suscipit. Pellentesque malesuada consequat sem, et auctor magna aliquam gravida. Nullam blandit dignissim iaculis. Suspendisse non diam nec augue scelerisque iaculis. Nam id dui sed lorem vulputate rhoncus eget eu tellus. In sit amet nisi nunc. Fusce sed aliquet sem. Aliquam sit amet metus metus.
Donec in mi a arcu cursus commodo non ut metus. Nunc id eros ut augue consequat tempus ut non ligula. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer pretium, erat sit amet scelerisque euismod, purus lectus convallis dui, eget imperdiet sapien est ut magna. Nullam elementum, tortor vitae pulvinar mattis, orci neque porta tortor, a feugiat nisi lacus quis diam. Ut gravida augue id est rutrum elementum. Mauris eget felis dolor. Phasellus ante ante, porttitor sit amet lobortis ut, suscipit id neque. Fusce hendrerit dolor nec odio eleifend in auctor enim cursus. Nullam fermentum pretium risus, in hendrerit nulla cursus sit amet. Fusce eu tempus elit. Ut tortor velit, aliquam in ornare vel, feugiat sed nibh. Donec fringilla est id odio lacinia vulputate. Donec nulla urna, congue sit amet pretium non, dictum at orci. Fusce neque sem, fermentum eu tempus nec, mattis venenatis sem. Proin scelerisque velit tristique urna mattis adipiscing. Proin mattis faucibus facilisis. Integer non lacus ac ligula accumsan convallis quis molestie erat. Curabitur imperdiet vestibulum vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris lacus ligula, hendrerit eget suscipit in, sollicitudin nec dui. Suspendisse euismod, lorem pretium gravida rhoncus, enim quam facilisis orci, nec volutpat nisi dolor id lacus. Proin dolor arcu, rutrum eget hendrerit vel, pharetra id elit. Nullam porta euismod suscipit. Pellentesque malesuada consequat sem, et auctor magna aliquam gravida. Nullam blandit dignissim iaculis. Suspendisse non diam nec augue scelerisque iaculis. Nam id dui sed lorem vulputate rhoncus eget eu tellus. In sit amet nisi nunc. Fusce sed aliquet sem. Aliquam sit amet metus metus.
Donec in mi a arcu cursus commodo non ut metus. Nunc id eros ut augue consequat tempus ut non ligula. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer pretium, erat sit amet scelerisque euismod, purus lectus convallis dui, eget imperdiet sapien est ut magna. Nullam elementum, tortor vitae pulvinar mattis, orci neque porta tortor, a feugiat nisi lacus quis diam. Ut gravida augue id est rutrum elementum. Mauris eget felis dolor. Phasellus ante ante, porttitor sit amet lobortis ut, suscipit id neque. Fusce hendrerit dolor nec odio eleifend in auctor enim cursus. Nullam fermentum pretium risus, in hendrerit nulla cursus sit amet. Fusce eu tempus elit. Ut tortor velit, aliquam in ornare vel, feugiat sed nibh. Donec fringilla est id odio lacinia vulputate. Donec nulla urna, congue sit amet pretium non, dictum at orci. Fusce neque sem, fermentum eu tempus nec, mattis venenatis sem. Proin scelerisque velit tristique urna mattis adipiscing. Proin mattis faucibus facilisis. Integer non lacus ac ligula accumsan convallis quis molestie erat. Curabitur imperdiet vestibulum vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris lacus ligula, hendrerit eget suscipit in, sollicitudin nec dui. Suspendisse euismod, lorem pretium gravida rhoncus, enim quam facilisis orci, nec volutpat nisi dolor id lacus. Proin dolor arcu, rutrum eget hendrerit vel, pharetra id elit. Nullam porta euismod suscipit. Pellentesque malesuada consequat sem, et auctor magna aliquam gravida. Nullam blandit dignissim iaculis. Suspendisse non diam nec augue scelerisque iaculis. Nam id dui sed lorem vulputate rhoncus eget eu tellus. In sit amet nisi nunc. Fusce sed aliquet sem. Aliquam sit amet metus metus.

Блог вебразработчика
Функциональное тестирование и продвижение сайтов

Яндекс.Метрика