Selenio

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 25 de mayo de 2021; las comprobaciones requieren 6 ediciones .
selenio
Tipo de pruebas de software
Escrito en Java
Sistema operativo Microsoft Windows , GNU / Linux , Apple Mac OS
ultima versión 4.5.0 (28 de septiembre de 2022 ) ( 2022-09-28 )
Licencia Licencia Apache 2.0
Sitio web selenio.dev

Selenium WebDriver  es una herramienta para automatizar las acciones del navegador web. En la mayoría de los casos, se usa para probar aplicaciones web , pero no se limita a esto. En particular, se puede utilizar para resolver tareas rutinarias de administración del sitio o recibir datos regularmente de varias fuentes (sitios). Raramente usado, pero importante.

Historia

En junio de 2004 [1], el desarrollador Jason Huggins escribió una biblioteca de JavaScript llamada "JavaScriptTestRunner" (ahora conocida como "Selenium Core") para ejecutar pruebas en el navegador . En ese momento, Huggins trabajaba en la oficina de ThoughtWorks en Chicago , y la biblioteca creada se utilizó para probar un sitio escrito en Python usando el sistema de administración de contenido (CMS) Plone . Huggins fue asistido por Paul Gross y Jie Tina Wang de ThoughtWorks. Más tarde, otros desarrolladores y probadores de la empresa se sumaron al desarrollo.

El nombre "Selenium" ("selenium" en inglés - selenium ) comenzó a usarse después de que Huggins bromeara en uno de sus correos electrónicos (email) sobre un proyecto de la competencia llamado "Mercury Interactive QuickTest Professional" ("mercury" en traducido del inglés - mercurio ), escribiendo que puede recuperarse del envenenamiento por mercurio tomando selenio con alimentos [2] .

Paul Hammant (empleado de ThoughtWorks) propuso abrir el código fuente de la biblioteca Selenium Core, brindar la capacidad de escribir scripts en cualquier lenguaje de programación y ejecutar scripts de forma remota. Para implementar esto último, fue necesario sortear las restricciones implementadas por el navegador para cumplir con la misma política de origen . Aslak Hellesoy y Mike Melia de ThoughtWorks reescribieron una página para eludir la regla. Paul Hammant escribió los programas Java que implementan el servidor y el cliente. Aslak Hellesoy y Obie Fernandez reescribieron el cliente de Ruby como una biblioteca.

ThoughtWorks, que tiene oficinas en todo el mundo, comenzó a usar Selenium en proyectos comerciales. Mike Williams, Darrell Deboer y Darren Cotterill continuaron con el desarrollo.

Los desarrolladores de BEA Systems, Inc., Dan Fabulich y Nelson Sproul reescribieron el código del servidor utilizando código del proyecto Jetty (servidor HTTP en Java) para implementar el proxy HTTP . El nuevo servidor se conoció como "Selenium Remote Control" o "Selenium RC". Selenium RC fue continuado por Pat Lightbody, Dan Fabulich y Nelson Sproul.

En diciembre de 2004 se abrió el código fuente del proyecto Selenium.

En 2005, en una reunión de desarrolladores, Dan Fabulich y Nelson Sproul (con la ayuda de Pat Lightbody) propusieron adoptar un conjunto de parches que convertirían a "Selenium RC" en el producto conocido hoy como "Selenium 1.0". En la misma reunión, la gestión del proyecto se asignó a un comité, con los desarrolladores Jason Huggins y Paul Hammant representando a ThoughtWorks en el comité que se formó.

En el verano de 2006, un equipo de desarrollo formado por Wang Peng Chao, Huang Liang, Xiong Jie y otros, dirigido por Mike Williams en la oficina de ThoughWorks en China, desarrolló la biblioteca Selenium Core. El equipo ha implementado las funciones disponibles en Selenium 1.0.

En 2007, Jason Huggins se unió a Google, se convirtió en miembro del (entonces secreto) equipo de soporte de Selenium y continuó trabajando en Selenium RC con otros desarrolladores (como Jennifer Bevan). Los representantes de Google anunciaron por primera vez el uso de Selenium en la Google Test Automation Conference (GTAC-2007) [3] celebrada en Nueva York el 23 y 24 de agosto de 2007. Más tarde, Jennifer Bevan tuvo la oportunidad de realizar cambios en el código del proyecto Selenium.

Haw-bin Chai de Chicago creó parches que agregaron la funcionalidad XPath e implementaron una extensión llamada "Elemento de interfaz de usuario", después de lo cual fue invitado al equipo de desarrollo de Selenium en 2007.

Simon Stewart, entonces en ThoughtWorks, desarrolló una herramienta llamada WebDriver. WebDriver lanzó navegadores y trabajó con ellos, aunque no estaba limitado por las capacidades proporcionadas por JavaScript, por lo tanto, era superior en capacidades a Selenium Core. Pero admitir cada navegador requería escribir código. En 2007, Simon Stewart presentó su desarrollo en la conferencia GTAC-2007. En 2009, los desarrolladores se reunieron en la conferencia GTAC-2009 y decidieron fusionar las bases de código de los proyectos Selenium y WebDriver. De 2007 a 2012, Simon Stewart trabajó en Google y luego en Facebook, dedicando parte de su tiempo a hacer que WebDriver fuera compatible con Selenium RC. El nuevo producto se llamó "Selenium WebDriver" o "Selenium 2.0" [4] .

En 2008, Philippe Hanrigou, entonces en ThoughtWorks, creó el proyecto Selenium Grid. Selenium Grid es un proyecto de código abierto que proporciona programas diseñados para ejecutar secuencias de comandos de Selenium RC en varias computadoras al mismo tiempo. Se ejecutaron diferentes scripts en varias computadoras para reducir su tiempo de ejecución. Las capacidades de "Selenium Grid" coincidieron con las capacidades de un producto similar, pero cerrado e interno, de Google. Pat Lightbody era propietaria de un sitio llamado "Control de calidad alojado" que le permite obtener capturas de pantalla de páginas web , vendió el sitio a Gomez, Inc.

Shinya Kasatani de Japón ha creado una extensión para el navegador Firefox llamada "Selenium IDE" que le permite grabar, guardar y reproducir pruebas. La prórroga no estaba restringida por la misma política de origen .

Información general

Selenium WebDriver es principalmente un conjunto de bibliotecas para varios lenguajes de programación. Estas bibliotecas se utilizan para enviar solicitudes HTTP al controlador (de ahí el nombre WebDriver), utilizando el protocolo JsonWireProtocol [5] , que indican la acción que debe realizar el navegador dentro de la sesión actual. Ejemplos de tales comandos pueden ser comandos para encontrar elementos mediante un localizador, seguir enlaces, analizar el texto de una página/elemento, presionar botones o seguir enlaces en una página de sitio web . Hay enlaces oficiales de la biblioteca a lenguajes de programación populares y de aficionados. Por ejemplo, la biblioteca de soporte del lenguaje PHP no es oficial y está siendo desarrollada por Facebook [6] .

El proyecto Selenium y la comunidad son compatibles con los navegadores Microsoft Internet Explorer , Google Chrome , Mozilla Suite y Mozilla Firefox que ejecutan los sistemas operativos Microsoft Windows , Linux y Apple Macintosh .

Selenium, a partir de la versión 3.x, comenzó a requerir un controlador independiente para funcionar con el navegador Firefox: GeckoDriver , anteriormente llamado Marionette [7]

Como parte del proyecto Selenium, se lanza la herramienta Selenium IDE , una extensión para los navegadores Firefox y Chrome , que es una biblioteca Selenium con una interfaz gráfica (GUI) creada con XUL . La extensión le permite grabar, guardar y reproducir scripts para probar páginas web. Los scripts se guardan en formato HTML como una tabla.

Plataformas soportadas

Lista de navegadores soportados por los desarrolladores del proyecto Selenium y/o la comunidad [8] :

Navegador Sistema operativo Desarrollador
Cromo / Google Chrome Windows / mac OS / Linux Google
Firefox Windows/mac OS/Linux Mozilla
Borde de Microsoft ventanas 10 microsoft
explorador de Internet ventanas Proyecto Selenio
safari macOS El Capitán y más reciente Manzana
Ópera Windows/mac OS/Linux Ópera

También es posible su uso con navegadores sin interfaz gráfica  - HtmlUnit y PhantomJS , aunque este último no es recomendable, ya que este producto no ha sido actualizado y soportado por su desarrollador desde 2017 y el correspondiente La funcionalidad ha estado presente en el navegador desde ese momento Google Chrome [8] .

Véase también

Notas

  1. Historia  del selenio . selenio.dev. Consultado el 19 de diciembre de 2019. Archivado desde el original el 19 de diciembre de 2019.
  2. Crill, Paul. Paquete de prueba de la aplicación web Selenium de código abierto compatible con iPhone y Android  // InfoWorld  :  revista. - 2011. - 6 de abril.
  3. Segunda conferencia anual de automatización de pruebas de Google (7 de marzo de 2007). Consultado el 1 de septiembre de 2016. Archivado desde el original el 13 de mayo de 2016.
  4. El Proyecto Selenio . NuevoCírculo. Consultado el 29 de junio de 2014. Archivado desde el original el 12 de agosto de 2014.
  5. selenium: un ecosistema y marco de automatización del navegador , 2017-12-31 , < https://github.com/SeleniumHQ/selenium > Archivado el 19 de febrero de 2020 en Wayback Machine . 
  6. php-webdriver: Un cliente php para webdriver . — 2017-06-17. Archivado desde el original el 17 de mayo de 2017.
  7. Marioneta._  _ _ Red de desarrolladores de Mozilla. Consultado el 19 de junio de 2017. Archivado desde el original el 12 de septiembre de 2017.
  8. 1 2 El proyecto de automatización del navegador Selenium: requisitos del controlador  . Consultado el 8 de febrero de 2021. Archivado desde el original el 4 de marzo de 2021.

Enlaces