Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
PhantomJS
»
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
{{Ficha de software|nombre=PhantomJS|logo=Phantomjs-logo.png|autor=[[Ariya Hidayat]]|desarrollador=[[Ariya Hidayat]]|licencia=[[BSD License|BSD]]<ref name="license">{{cite web|title=phantomjs/LICENSE.BSD at master · ariya/phantomjs|url=https://github.com/ariya/phantomjs/blob/master/LICENSE.BSD|website=GitHub|language=en}}</ref>|sitio_web={{URL|phantomjs.org}}|última_versión=2.1.1<ref>{{cite web|title=Releases · ariya/phantomjs|url=https://github.com/ariya/phantomjs/releases|website=GitHub|accessdate=21 de abril de 2017}}</ref>|lenguaje programación=[[C++]] }} '''PhantomJS''' Es un [[navegador sin interfaz gráfica]] para automatizar la interacción de las páginas web. PhantomJS proporciona una API de [[JavaScript|Javascript]] que permite la navegación automatizada, [[Captura de pantalla|capturas de pantalla]], comportamiento del usuario y las aserciones, lo que lo convierte en una herramienta común utilizada para ejecutar [[Prueba unitaria|pruebas unitarias]] basadas en el navegador en un sistema sin interfaz gráfica como un entorno de [[integración continua]]. PhantomJS está basado en WebKit, lo que lo convierte en un entorno de navegación similar a [[Safari (navegador)|Safari]] y [[Google Chrome]] (antes de un fork de Chrome de [[WebKit]] evolucionara a [[Blink]]). Es un [[software de código abierto]] publicado bajo la [[Licencia BSD]]. == Historia == PhantomJS fue lanzado el 26 de enero de 2011 por Ariya Hidayat después de varios años de desarrollo.<ref>{{Cita web|url=http://ariya.blogspot.com/2011/01/phantomjs-minimalistic-headless-webkit.html|título=don't code today what you can't debug tomorrow|fechaacceso=20 de julio de 2015|sitioweb=ariya.blogspot.com}}</ref> El primer commit público al proyecto fue en 2011.<ref>{{Cita web|url=https://github.com/ariya/phantomjs|título=ariya/phantomjs|fechaacceso=20 de julio de 2015|sitioweb=GitHub}}</ref> El logo comúnmente usado para referirse pictóricamente a PhantomJS es un fantasma azul fluorescente sobre un fondo negro. Esto se refiere a la falta de [[interfaz gráfica de usuario]], o cuerpo principal del navegador, haciendo que los usuarios de PhantomJS parezcan fantasmas. En marzo de 2018, el desarrollo de PhantomJS se suspendió debido a la falta de contribuciones activas.<ref>{{Cita web|url=https://github.com/ariya/phantomjs/issues/15344|título=Archiving the project: suspending the development|fecha=3 de marzo de 2018|sitioweb=ariya/phantomjs|editorial=Github}}</ref> == Uso de PhantomJS == El API de Javascript de PhantomJS puede utilizarse para abrir páginas web, toma capturas de pantalla, ejecutar acciones de usuario y ejecutar JavaScript inyectado en el contexto de la página. Por ejemplo, el siguiente código abrirá Wikipedia y, al cargarlo, guardará una captura de pantalla en un archivo y saldrá.<syntaxhighlight lang="javascript"> console.log('Cargando pagina web'); var page = require('webpage').create(); var url = 'http://en.wikipedia.org/'; page.open(url, function (status) { console.log('Pagina cargada'); page.render('wikipedia.org.png'); phantom.exit(); }); </syntaxhighlight> == Herramientas que utilizan PhantomJS == === CasperJS === Poco después del lanzamiento de PhantomJS, [[Nicolas Perriault]] escribió CasperJS, un conjunto de bibliotecas sobre PhantomJS que amplían sus capacidades como cliente para la prueba automatizada de páginas web. CasperJS Y PhantomJS se han vuelto lo suficientemente valiosos como para que proyectos similares hayan comenzado a adoptar el API como una forma estándar de interactuar con los navegadores sin interfaz gráfica.<ref>{{Cita web|url=http://slimerjs.org/faq.html|título=FaQ - SlimerJS|fechaacceso=20 de julio de 2015|autor=Laurent Jouanneau|sitioweb=slimerjs.org}}</ref><ref>{{Cita web|url=http://triflejs.org/|título=trifleJS|fechaacceso=20 de julio de 2015|sitioweb=trifleJS}}</ref> === YSlow === [[Yahoo!|Yahoo]]! desarrolló una versión de [[YSlow]] que aprovecha PhantomJS para reunir métricas de rendimiento para sitios web.<ref>{{Cita web|url=http://yslow.org/phantomjs/|título=YSlow - Official Open Source Project Website|fechaacceso=20 de julio de 2015|autor=Marcel Duran|sitioweb=yslow.org}}</ref> == Compañías que utilizan PhantomJS == * [[Twitter]] usó [[QUnit]] y PhantomJS para [[Prueba unitaria|pruebas unitarias]] a partir de 2015.<ref>{{Cita web|url=https://twitter.com/leolaneseltd/status/197766152745787392|título=Leo Lanese on Twitter|fechaacceso=20 de julio de 2015|sitioweb=[[Twitter]]}}</ref> * [[LinkedIn]] usó herramientas basados en PhantomJS para las pruebas de rendimiento a partir de 2011.<ref>{{Cita web|url=http://www.slideshare.net/phegaro/linkedin-mobile-how-do-we-do-it|título=LinkedIn Mobile: How do we do it?|fechaacceso=20 de julio de 2015|autor=phegaro|sitioweb=[[SlideShare]]}}</ref> * [[Netflix]] utilizó Sketchy, un navegador sin interfaz gráfica construido con PhantomJS, para entender lo que hace sin tener que visitar el sitio a partir de 2014.<ref>{{Cita web|url=http://threatpost.com/netflix-open-source-security-tools-solve-range-of-challenges/107931#sthash.pcyW3Ksf.dpuf|título=Netflix Open Source Security Tools Solve Range of Challenges|fechaacceso=20 de julio de 2015|autor=Michael Mimoso|sitioweb=threatpost.com}}</ref> * [[Time Warner Cable]] utilizó PhantomJS con [[CoffeeScript]], [[Jasmine]], y [[JUnit]] [[Extensible Markup Language|XML]] para la integración continua de [[Jenkins]] a partir de 2012.<ref>{{Cita web|url=http://ariya.ofilabs.com/2012/01/one-year-of-wandering-headlessly.html|título=one year of wandering headlessly|fechaacceso=20 de julio de 2015|sitioweb=ofilabs.com|fechaarchivo=22 de julio de 2015|urlarchivo=https://web.archive.org/web/20150722045918/http://ariya.ofilabs.com/2012/01/one-year-of-wandering-headlessly.html|deadurl=yes}}</ref> == Otros usos para PhantomJS == PhantomJS fue hecho hecho para el control programático de sitios web y ha sido utilizado para muchos propósitos, desde la diferenciación visual hasta la prueba automatizada de [[Framework|frameworks]] Javascript.<ref>{{Cita web|url=https://github.com/Huddle/PhantomCSS|título=Huddle/PhantomCSS|fechaacceso=20 de julio de 2015|sitioweb=GitHub}}</ref><ref>{{Cita web|url=http://durandaljs.com/documentation/Testing-With-PhantomJS-And-Jasmine.html|título=Docs - Testing with PhantomJS and Jasmine - Durandal|fechaacceso=20 de julio de 2015|autor=EisenbergEffect|sitioweb=durandaljs.com}}</ref> === Renderización en el servidor de JavaScript del lado del cliente === Con el aumento de Javascript de lado del cliente y los problemas de [[Posicionamiento en buscadores|SEO]] que la práctica presenta, los desarrolladores recurrieron a PhantomJS como manera de pre-renderizar el [[HTML]] estático para las solicitudes iniciales.<ref>{{Cita web|url=http://eshlox.net/2014/05/04/short-story-about-rendering-html-client-side-vs-server-side/|título=Short story about rendering HTML, client side vs server side|fechaacceso=20 de julio de 2015|sitioweb=eshlox}}</ref><ref>{{Cita web|url=http://blog.42floors.com/sever-side-rendering-single-page-apps-using-phantomjs-node-js/|título=Sever-Side Rendering of Single Page Apps using PhantomJS and Node.js|fechaacceso=20 de julio de 2015|autor=Aaron O'Connell|fecha=22 de abril de 2014|sitioweb=42floors.com}}</ref> A pesar del impacto en el rendimiento de este enfoque, siguió siendo una de las formas más sencillas de mejorar el SEO sin reescribir una [[aplicación web]], generando servicios tratan de automatizar el proceso.<ref>{{Cita web|url=http://www.brombone.com/|título=BromBone - SEO for your AngularJS, EmberJS, or BackboneJS website.|fechaacceso=20 de julio de 2015|sitioweb=Brombone.com}}</ref> === Uso malicioso de PhantomJS === Debido a que PhantomJS se puede ejcutar sin interfaz de usuario, se puede programar a través de Javascript, y se adhiere relativamente a las especificaciones de los navegadores modernos, se utiliza comúnmente como una forma de automatizar ataques contra los sitios web.<ref>{{Cita web|url=http://www.darkreading.com/attacks-breaches/ddos-attack-used-headless-browsers-in-150-hour-siege/d/d-id/1140696?|título=DDoS Attack Used 'Headless' Browsers In 150-Hour Siege|fechaacceso=20 de julio de 2015|sitioweb=Dark Reading}}</ref> PhantomJS imita el tráfico de usuarios legítimos y puede complicar las tecnologías de mitigación de ataque. PhantomJS también puede se utilizado para verificar automáticamente los inicios de sesión en sitios web. ([[Credential Embutido|credential stuffing]]), agravando los problemas que surgen después de que un sitio es violado y los nombres de usuario son filtrados.<ref>{{Cita web|url=https://gist.github.com/dariusk/4072489|título=Logging in to Amazon using PhantomJS|fechaacceso=20 de julio de 2015|sitioweb=GitHub Gists}}</ref> == Véase también == * [[Mozilla Firefox|Firefox]] * [[Google Chrome]] * [[Opera (navegador)|Opera (navegador web)]] * [[Selenium|Selenium (software)]] * [[WebKit]] == Referencias == {{Listaref}} == Enlaces externos == * {{Página web|http://phantomjs.org/}} * [https://github.com/ariya/phantomjs GitHub] {{Control de autoridades}} [[Categoría:Software de 2011]] [[Categoría:Software que utiliza la licencia BSD]] [[Categoría:Software basado en WebKit]] [[Categoría:Navegadores web]] [[Categoría:Software programado en C++]]
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Edición de «
PhantomJS
»
Añadir idiomas
Añadir tema