HtmlUnit

HtmlUnit — безголовый веб-браузер, написанный на Java. Позволяет выполнять высокоуровневые манипуляции с веб-сайтами из другого Java-кода, включая заполнение и отправку форм, нажатие на ссылки. HtmlUnit предоставляет доступ к структуре и деталям загруженных веб-страниц, а также эмулирует часть поведения браузера, включая низкоуровневые аспекты TCP/IP и HTTP. Последовательность вызовов вроде getPage(url), getLinkWith("Click here"), click() позволяет программно переходить по гипертексту и получать страницы, содержащие HTML, JavaScript, Ajax и куки.

Этот безголовый браузер поддерживает работу с безопасными соединениями HTTPS, базовую HTTP-аутентификацию, автоматические перенаправления страниц и другие HTTP-заголовки. Java-код теста с помощью HtmlUnit может анализировать полученные страницы как текст, XML DOM, а также как коллекции форм, таблиц и ссылок[1].

HtmlUnit стремится эмулировать работу реальных браузеров — прежде всего Chrome, Firefox и Edge.

Наиболее часто HtmlUnit применяется для автоматизации тестирования веб-страниц, но также его используют для скрейпинга данных или загрузки содержимого сайтов.

Общие сведения
HtmlUnit
Тип веб-браузер
Написана на Java
Операционная система кроссплатформенный (JVM)
Языки интерфейса английский
Первый выпуск 22 мая 2002
Аппаратная платформа Java Virtual Machine
Последняя версия 4.15.0 (17 августа 2025)
Репозиторий github.com/HtmlUnit/html…
Лицензия Apache License 2.0
Сайт htmlunit.org

Возможности

  • Предоставляет высокоуровневый API, скрывающий от пользователя детали низкоуровневой реализации[2].
  • По сравнению с другими реализациями WebDriver, HtmlUnitDriver внедряется быстрее[3].
  • Может быть настроен для эмуляции конкретного браузера.

Недостатки

  • Нельзя тестировать расположение и рендеринг элементов страницы[4].
  • Поддержка JavaScript неполная; это одна из областей текущей доработки.

Используемые технологии

Библиотеки, использующие HtmlUnit

Примечания

  1. HtmlUnit Home. Sourceforge. Дата обращения: 30 августа 2019.
  2. Beust, Cédric. Next Generation Java Testing: TestNG and Advanced Concepts / Cédric Beust, Hani Suleiman. — Pearson Education, 15 октября 2007. — ISBN 9780132702270.
  3. HtmlUnit Driver. Github. Дата обращения: 30 августа 2019. Архивировано 13 января 2025 года.
  4. Testing HTML Unit. GWT Project. Дата обращения: 30 августа 2019. Архивировано 18 сентября 2025 года.

Литература

  • Langer, A. «Extending HtmlUnit for test automatisation of Web applications using AJAX», под руководством Т. Грехенига и М. Бернхарта; 183/1, 2009.  (требуется подписка)
  • Massol, Vincent. Maven: A Developer's Notebook / Vincent Massol, Timothy M. O'Brien. — O'Reilly Media, 2005. — P. 83–86. — ISBN 978-0-596-55297-8.
  • Tahchiev, Petar. 12. Presentation Layer Testing // JUnit in Action / Petar Tahchiev, Felipe Leme, Vincent Massol. — 2. — Manning, 2010. — P. 190–208. — ISBN 978-1-935182-02-3.
  • Harold, Elliotte Rusty. Refactoring HTML. — Addison-Wesley Professional, 16 марта 2012. — ISBN 9780132701877.
  • Tong, Ka Iok. Enjoying Web Development with Tapestry. — TipTec Development, 23 апреля 2006. — ISBN 9781411649132.
  • Schalk, Chris. JavaServer Faces: The Complete Reference / Chris Schalk, Ed Burns, James Holmes. — McGraw Hill Professional, 25 августа 2006. — ISBN 9780072262407.  (требуется подписка)

Ссылки