Автор (ы) оригинала | Ария Хидаят |
---|---|
Разработчик (и) | Ария Хидаят |
Первоначальный выпуск | 17 января 2011 г.; 9 лет назад (17.01.2011) |
Стабильный выпуск | 2.1.1 / 24 января 2016 г.; 4 года назад (24.01.2016) |
Репозиторий | |
Написано на | C ++ |
Тип | Headless браузер |
Лицензия | BSD |
Веб-сайт | phantomjs.org |
PhantomJS - это прекращенный безголовый браузер, используемый для автоматизации взаимодействия с веб-страницами. PhantomJS предоставляет JavaScript API, обеспечивающий автоматическую навигацию, создание снимков экрана, поведение пользователя и утверждения, что делает его распространенным инструментом, используемым для запуска модульных тестов на основе браузера в автономной системе, такой как непрерывный среда интеграции. PhantomJS основан на WebKit, что делает его среду просмотра, аналогичную Safari и Google Chrome (до того, как Chrome форк WebKit превратился в Blink ). Это программное обеспечение с открытым исходным кодом, выпущенное под лицензией BSD.
PhantomJS был выпущен 23 января 2011 года Арией Хидаят после нескольких лет разработки.
Первая фиксация открытого проекта была сделана в 2011 году.
Логотип, обычно используемый для графического обозначения PhantomJS, представляет собой флуоресцентное синее привидение на черном фоне. Это относится к отсутствию графического пользовательского интерфейса или основной части браузера, из-за чего пользователи PhantomJS кажутся призраками.
В марте 2018 года разработка PhantomJS была приостановлена из-за отсутствия активных вкладов.
PhantomJS JavaScript API может использоваться для открытия веб-страниц, принимая снимки экрана, выполнение действий пользователя и запуск внедренного JavaScript в контексте страницы. Например, следующий код откроет Википедию и при загрузке сохранит снимок экрана в файл и выйдет.
console.log ('Загрузка веб-страницы'); var page = require ('webpage'). create (); var url = 'http://en.wikipedia.org/'; page.open (URL, функция (статус) {console.log ('Страница загружена'); page.render ('wikipedia.org.png'); phantom.exit ();});
Вскоре после выпуска PhantomJS, он написал CasperJS, набор библиотек поверх PhantomJS, расширяющих его возможности в качестве клиента для автоматического тестирования веб-страниц. CasperJS и PhantomJS стали настолько ценными, что аналогичные проекты начали использовать API в качестве стандартного способа взаимодействия с безголовыми браузерами.
Yahoo! разработала версию, которая использует PhantomJS для сбора показатели производительности для веб-сайтов.
PhantomJS был создан для программного управления веб-сайтами и использовался для многих целей, от визуального различения веб-сайтов до автоматического тестирования фреймворков JavaScript.
С ростом клиентского JavaScript и проблемами SEO, которые возникают на практике, разработчики обратились к PhantomJS как к способу предварительного рендеринга статического HTML для начального Запросы. Несмотря на влияние такого подхода на производительность, он оставался одним из простейших способов улучшить SEO, не переписывая веб-приложение, порождая службы, пытающиеся автоматизировать этот процесс.
Потому что PhantomJS запускается без пользовательского интерфейса, поддерживает сценарии через JavaScript и относительно соответствует спецификациям современных браузеров, он обычно используется как способ автоматизации атак на веб-сайты. PhantomJS имитирует легальный пользовательский трафик и может усложнить технологии предотвращения атак. PhantomJS также может использоваться для автоматической проверки логинов на разных веб-сайтах (заполнение учетных данных ), что усугубляет проблемы, возникающие после взлома сайта и утечки имен пользователей и паролей.