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 |
Возможности
Недостатки
- Нельзя тестировать расположение и рендеринг элементов страницы[4].
- Поддержка JavaScript неполная; это одна из областей текущей доработки.
Используемые технологии
- DOM W3C
- HTTP-соединения через компоненты Apache HttpComponents
- JavaScript, собственный форк Rhino
- HTML-парсинг с использованием NekoHTML
- CSS — через CSS Parser
- XPath с помощью Xalan
Библиотеки, использующие HtmlUnit
Примечания
- ↑ HtmlUnit Home. Sourceforge. Дата обращения: 30 августа 2019.
- ↑ Beust, Cédric. Next Generation Java Testing: TestNG and Advanced Concepts / Cédric Beust, Hani Suleiman. — Pearson Education, 15 октября 2007. — ISBN 9780132702270.
- ↑ HtmlUnit Driver. Github. Дата обращения: 30 августа 2019. Архивировано 13 января 2025 года.
- ↑ Testing HTML Unit. GWT Project. Дата обращения: 30 августа 2019. Архивировано 18 сентября 2025 года.
Литература
- Beust, Cédric. Next Generation Java Testing: TestNG and Advanced Concepts / Cédric Beust, Hani Suleiman. — Pearson Education, 15 октября 2007. — P. 339–. — ISBN 9780132702270. (требуется подписка)
- 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. (требуется подписка)