PhantomJS - PhantomJS

PhantomJS
Phantomjs-logo.png
Оригинальный автор (ы)Ария Хидаят
Разработчики)Ария Хидаят
изначальный выпуск17 января 2011 г.; 9 лет назад (2011-01-17)
Стабильный выпуск
2.1.1[1] / 24 января 2016 г.; 4 года назад (2016-01-24)
Репозиторий Отредактируйте это в Викиданных
Написано вC ++
ТипБезголовый браузер
ЛицензияBSD[2]
Интернет сайтфантомы.org

PhantomJS прекращено безголовый браузер используется для автоматизации взаимодействия с веб-страницей. PhantomJS предоставляет JavaScript API, обеспечивающий автоматическую навигацию, создание снимков экрана, поведение пользователя и утверждения, что делает его распространенным инструментом, используемым для запуска модульных тестов на основе браузера в безголовая система как непрерывная интеграция среда. PhantomJS основан на WebKit сделать его похожим на среду просмотра Сафари и Гугл Хром (до того, как Chrome форк WebKit превратился в Мигать ). это программное обеспечение с открытым исходным кодом выпущен под Лицензия BSD.[2]

История

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

Первое участие в публичном проекте было в 2011 году.[4]

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

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

Использование PhantomJS

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

консоль.журнал('Загрузка веб-страницы');вар страница = требовать('страница в Интернете').Создайте();вар url = 'http://en.wikipedia.org/';страница.открыто(url, функция (положение дел) {  консоль.журнал("Страница загружена");  страница.оказывать('wikipedia.org.png');  фантом.выход();});

Инструменты с использованием PhantomJS

CasperJS

Вскоре после выпуска PhantomJS Николя Перрио написал CasperJS, набор библиотек поверх PhantomJS, которые расширяют его возможности в качестве клиента для автоматического тестирования веб-страниц. CasperJS и PhantomJS стали настолько ценными, что аналогичные проекты начали использовать API в качестве стандартного способа взаимодействия с безголовыми браузерами.[6][7]

YSlow

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

Компании, использующие PhantomJS

  • Twitter используемый QUnit и PhantomJS для модульного тестирования с 2015 года.[9]
  • LinkedIn использовал инструменты на основе PhantomJS для тестирования производительности с 2011 года.[10]
  • Netflix использовал Sketchy, безголовый браузер, созданный на PhantomJS, чтобы понять, что он делает, без необходимости посещать сайт по состоянию на 2014 год.[11]
  • Тайм Уорнер Кабель использовал PhantomJS с CoffeeScript, Жасмин, и JUnit XML для Дженкинс непрерывная интеграция с 2012 года.[12]

Другое использование PhantomJS

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

Серверный рендеринг клиентского JavaScript

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

Вредоносное использование PhantomJS

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

Смотрите также

Рекомендации

  1. ^ «Релизы · ariya / phantomjs». GitHub. Получено 21 апреля 2017.
  2. ^ а б "phantomjs / LICENSE.BSD at master · ariya / phantomjs". GitHub.
  3. ^ "не кодируйте сегодня то, что не сможете отладить завтра". ariya.blogspot.com. Получено 20 июля 2015.
  4. ^ "ария / фантомы". GitHub. Получено 20 июля 2015.
  5. ^ «Архивирование проекта: приостановка разработки». Ария / Phantomjs. Github. 2018-03-03.
  6. ^ Лоран Жуано. "FaQ - SlimerJS". slimerjs.org. Получено 20 июля 2015.
  7. ^ "trifleJS". trifleJS. Получено 20 июля 2015.
  8. ^ Марсель Дюран. "YSlow - официальный сайт проекта с открытым исходным кодом". yslow.org. Получено 20 июля 2015.
  9. ^ "Leo Lanese в Твиттере". Twitter. Получено 20 июля 2015.
  10. ^ фегаро. «LinkedIn Mobile: как мы это делаем?». SlideShare. Получено 20 июля 2015.
  11. ^ Майкл Мимосо. «Инструменты безопасности с открытым исходным кодом Netflix решают ряд проблем». угрозаpost.com. Получено 20 июля 2015.
  12. ^ "один год скитаний без головы". ofilabs.com. Получено 20 июля 2015.
  13. ^ "Huddle / PhantomCSS". GitHub. Получено 20 июля 2015.
  14. ^ Айзенберга Эффект. «Документы - Тестирование с PhantomJS и Jasmine - Дюрандаль». durandaljs.com. Получено 20 июля 2015.
  15. ^ «Краткий рассказ о рендеринге HTML на стороне клиента и на стороне сервера». Eshlox. Получено 20 июля 2015.
  16. ^ Аарон О'Коннелл (22 апреля 2014 г.). «Серверная отрисовка одностраничных приложений с использованием PhantomJS и Node.js». 42floors.com. Получено 20 июля 2015.
  17. ^ "BromBone - SEO для вашего веб-сайта AngularJS, EmberJS или BackboneJS". Brombone.com. Получено 20 июля 2015.
  18. ^ "DDoS-атака использовала" безголовые "браузеры в 150-часовой осаде". Темное чтение. Получено 20 июля 2015.
  19. ^ «Вход в Amazon с помощью PhantomJS». GitHub Gists. Получено 20 июля 2015.

внешняя ссылка