PhantomJS

редактировать
PhantomJS
Phantomjs-logo.png
Автор (ы) оригинала Ария Хидаят
Разработчик (и) Ария Хидаят
Первоначальный выпуск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.

Содержание
  • 1 История
  • 2 Использование PhantomJS
  • 3 Инструменты с использованием PhantomJS
    • 3.1 CasperJS
    • 3.2 YSlow
  • 4 Компании, использующие PhantomJS
  • 5 Другое использование PhantomJS
    • 5.1 Серверная визуализация клиентского JavaScript
    • 5.2 Злонамеренное использование PhantomJS
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки
История

PhantomJS был выпущен 23 января 2011 года Арией Хидаят после нескольких лет разработки.

Первая фиксация открытого проекта была сделана в 2011 году.

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

В марте 2018 года разработка PhantomJS была приостановлена ​​из-за отсутствия активных вкладов.

Использование 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, расширяющих его возможности в качестве клиента для автоматического тестирования веб-страниц. CasperJS и PhantomJS стали настолько ценными, что аналогичные проекты начали использовать API в качестве стандартного способа взаимодействия с безголовыми браузерами.

YSlow

Yahoo! разработала версию, которая использует PhantomJS для сбора показатели производительности для веб-сайтов.

Компании, использующие PhantomJS
  • Twitter использовали QUnit и PhantomJS для модульного тестирования с 2015 года.
  • LinkedIn использовал инструменты на основе PhantomJS для тестирование производительности по состоянию на 2011 год.
  • Netflix использовал Sketchy, безголовый браузер, созданный на PhantomJS, чтобы понять, что он делает, не посещая сайт по состоянию на 2014 год.
  • Time Warner Cable использовал PhantomJS с CoffeeScript, Jasmine и JUnit XML для непрерывной интеграции Jenkins с 2012 года.
Другое применение PhantomJS

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

Ser ver рендеринг клиентского JavaScript

С ростом клиентского JavaScript и проблемами SEO, которые возникают на практике, разработчики обратились к PhantomJS как к способу предварительного рендеринга статического HTML для начального Запросы. Несмотря на влияние такого подхода на производительность, он оставался одним из простейших способов улучшить SEO, не переписывая веб-приложение, порождая службы, пытающиеся автоматизировать этот процесс.

Злонамеренное использование PhantomJS

Потому что PhantomJS запускается без пользовательского интерфейса, поддерживает сценарии через JavaScript и относительно соответствует спецификациям современных браузеров, он обычно используется как способ автоматизации атак на веб-сайты. PhantomJS имитирует легальный пользовательский трафик и может усложнить технологии предотвращения атак. PhantomJS также может использоваться для автоматической проверки логинов на разных веб-сайтах (заполнение учетных данных ), что усугубляет проблемы, возникающие после взлома сайта и утечки имен пользователей и паролей.

См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-01 11:48:45
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте