SlideShare a Scribd company logo
1 of 8
1
Selenium with lettuce and python
¿Qué es Selenium?
Seleniumesunentornode pruebasde software paraaplicacionesweb. Esposible escribir
estaspruebasennumerososlenguajesde programacióntalescomojava,python,php,ruby,
etc.En este caso,noscentraremosencómo realizarlaspruebasenPhyton,perolarealidades
que de un lenguaje aotrolas diferenciassonmínimas.Estaspruebaspuedenejecutarse
utilizandolamayoríade losnavegadoreswebyendiferentessistemasoperativossinningún
problema.
Seleniumestáformadopornumerososcomponentes,entre losque nosencontramos:
SeleniumIDE,SeleniumclientAPI,Seleniumremote control,SeleniumWebDriverySelenium
Grid.Nosotrosrealizaremosel siguiente tutorial conSeleniumWebDriver.
¿Paraqué se utiliza Selenium WebDriver?
SeleniumWebDriverse utilizaparatestearel correctofuncionamientode unapáginaweb.Es
decirque la páginahaga loque tengaque hacer.Esto lo realizaenviandocomandosauna
páginaweb,y obteniendoresultados.Unade las cualidadesprincipales,esque el Selenium
WebDrivernonecesitaunservidorespecial paraejecutarlostests,si noque inicia
directamente el navegadorindicadoal comenzarlaejecucióndel test.
Ventajas de Selenium WebDriver
 Testingmultibrowser:soportandoejecucionesdirectassobre IE,MozillayChrome.
 Control de variosframes,popups,alerts,etc.
 Navegaciónentre páginas.
 Es muy fácil añadirnuevasfuncionalidadesalos tests.
 No necesitaunservidorpropioparaejecutarlostest(comoocurre enotros
componentesde Selenium).
 Permite realizarpruebasenpáginasque se ejecutanendispositivosmóvilesgraciasal
AndroidDriveryIphoneDriver.
 Es muy rápidoya que realiza llamadasdirectas,sinningunaintervenciónexterna.
A continuaciónrealizaremospasoapaso algunosejemplosconSeleniumWebDriverylettuce
sobre una páginaweb.
Ejemplo:
Supongamoslaweb http://www.cheesecake.com/.A continuaciónrealizaremosuntesteode
algunade las funcionesposiblesque podemosimplementarconestaherramienta.
Lo primeroque tenemosque hacerescrear unproyectoy dentrounarchivo .feature yotro.py
como muestralasiguiente imagen:
2
Una vez hechoesto,procederemosacrear el feature especificandolasacciones(de manera
más clara posible,conloque queramosque haganuestrotest).Encuyocaso, el archivopuede
serde la siguientemanera:
Una vez hechoesto, procederemosacompletarel archivo.pyque contendrátantossteps
como líneastengael scenario.
El códigode losstepspodría ser de la siguientemanera:
3
Lo primeroque tenemosque haceresimportartodaslaslibreríasde lettuce yde Selenium, el
WebDriver.
A continuación,pondremoscomovariable global el driver,que eslapaginaa lacual le voya
realizarel testeo. Estavariable lapongocomoglobal,yaque la utilizaré entodoslossteps.Si
no lapusiese comovariable global,tendríaque inicializarlaencadaunode losstepsy se
abriría una ventananuevacadavezque accedoa un step.
A continuación,ycomohemosdichoantes,tengotantosstepscomolíneastengodentrodel
scenario.
Esta línea,me permite seleccionarunelemento.Es importante destacarque lalíneacompleta
esla siguiente:
element =
driver.find_element_by_xpath("/html/body/form/div[5]/div/di
v/div[3]/div[3]/div/div[2]/div/table/tbody/tr/td/div/div/a/
img").click()
A pesarde que no se aprecie enlaimagen,termina conun“.click()”. Estalíneame sirve en
cualquiercasopara seleccionarcualquierelemento,loúnicoque tengoque hacerescambiar
el xpathpara cada unode loselementos.
4
Es importante destacar,que ademásde lalocalizaciónporxpathque estamosrealizandoen
este caso,tambiénse puede realizarlalocalizaciónpornombre,id,tag,nombre de laclase o
CSS selectorconlossiguientesmétodosdriver.find_element_by_name,
driver.find_element_by_id,driver.find_element_by_tag_name,
driver.find_element_by_class_name odriver.find_element_by_css_selector respectivamente.
Esta línea,permite borrarla informaciónque hayenuncuadro de texto,si esque tiene
informaciónpordefecto.
La siguientelíneanospermiteescribirinformaciónenel cuadrode texto,enel que
anteriormente borre suinformaciónpordefecto.El valorque vaentre () esaquel que escribiré
dentrodel box.
El select,nospermite seleccionarunelementode undesplegable.El procedimientoes
exactamente el mismoque antes,simplemente que el xpathcambiasegúnel correspondiente.
En este caso,igual que antes,la líneacompletaeslasiguiente:
select =
driver.find_element_by_xpath("/html/body/form/div[5]/div/di
v/div[4]/div/div[2]/table/tbody/tr[5]/td/select/option[4]")
.click()
Resultadosobtenidos:
Despuésdel primerstep:
Despuésdel segundostep:
5
Despuésdel tercerstep:
6
Despuésdel últimostep:
Otras funcionalidades:
Ademásde todoesto,que eslo básico,nosinteresasaberque otrasfuncionalidadestiene
Selenium.Entre ellasnosencontramos:
 Drag and drop
Para explicaresto,loharemosmediante el ejemplode www.amazon.co.uk.
Al igual que antescreamoslos.feature correspondientesal igual que los.pyconlos
stepsnecesarios.
Para realizarel drag anddrop se hace de la siguiente manera:
La primeralíneaseleccionael objetoque deseamover.
En la segundalínea,seleccionael xpathdel lugardonde vaadejarse ese objeto
En la terceralínearealizoel dragand drop de esosdosobjetos.
 Foward:
Con lalínea avanzamosa la páginasiguiente
 Back:
Con lalínea vamosa la páginaanterior.
 Explicitwait
7
Se utilizacuandoqueremosindicarle al testque espere hastaque se cumplacierta
condición.
 Implicitwait:
Se utilizaparaindicarque el máximode tiempoque puede esperaresel indicado
dentrode losparéntesis.
 Close:
Se utilizaparacerrar laventanauna vezhayamosfinalizadoel test.
Excepciones:
Para poderutilizaralgunaexcepciónesnecesarioimportarlaconla siguientelíneade
código:
Dentrode los [] hay que ponerel nombre de laexcepción.Si queremosimportarmás
de una excepciónhemosde hacerlomediantecomas. Lasexcepcionesque podemos
manejarsonlas siguientes:
o ElementNotSelectableException:hasintentadoseleccionarunelementoque
no puede seleccionarse.
o ErrorInResponseException:lanzalaexcepcióncuandohayunproblemadel
ladodel servidor.
o InvalidSwitchToTargetException:Cuandolaventanaalaque quierocambiar
no existe.
o MoveTargetOutOfBoundsException:Cuandoel elemento que quierohacer
drop esinvalido.
Estos sonalgunasde muchas excepcionesque podemosutilizar.Paramás
informaciónsobre lasexcepcionesvisitarlapágina: https://selenium-
python.readthedocs.org/api.html
CapyBara with lettuce and python
Lo primeroque hayque hacer esinstalarpycabara,para ello,ponemoslasiguiente línea:
8
Y si se ha instaladocorrectamente saldránlossiguientesmensajes:
¿Qué es pycabara?
Es una implementaciónde pythonde capybaraque permite realizartestenaplicacionesweb.
Simulacomoun usuariointeractúaconla web.
¿Paraqué se utiliza?
Ventajas de pycabara
 Trabaja “out of the box”.
 Tiene unaAPImuyintuitivay fácil de aprenderymanejarpara el usuario.
 Tiene unafuerte sincronización,loque significaque nohaynecesidadde sincronizar
lostestmanualmente paraterminarel proceso.

More Related Content

What's hot

Primer programa en 1
Primer programa en 1Primer programa en 1
Primer programa en 1fehrhuichapa
 
Métodos en Java-Con ejemplos
Métodos en Java-Con ejemplosMétodos en Java-Con ejemplos
Métodos en Java-Con ejemplosIvan Luis Jimenez
 
Conversiones(1)
Conversiones(1)Conversiones(1)
Conversiones(1)Vane Akemi
 
1 1 1 Una Sencilla Aplicacion Java
1 1 1 Una Sencilla Aplicacion Java1 1 1 Una Sencilla Aplicacion Java
1 1 1 Una Sencilla Aplicacion JavaUVM
 

What's hot (7)

Primer programa en 1
Primer programa en 1Primer programa en 1
Primer programa en 1
 
Métodos en Java-Con ejemplos
Métodos en Java-Con ejemplosMétodos en Java-Con ejemplos
Métodos en Java-Con ejemplos
 
manual-batch-desde-0
manual-batch-desde-0manual-batch-desde-0
manual-batch-desde-0
 
Variables
VariablesVariables
Variables
 
Conversiones(1)
Conversiones(1)Conversiones(1)
Conversiones(1)
 
1 1 1 Una Sencilla Aplicacion Java
1 1 1 Una Sencilla Aplicacion Java1 1 1 Una Sencilla Aplicacion Java
1 1 1 Una Sencilla Aplicacion Java
 
2.1
2.12.1
2.1
 

Similar to Selenium with lettuce and python

Desarrollo_web_con_PHP_y_MySQL.pdf
Desarrollo_web_con_PHP_y_MySQL.pdfDesarrollo_web_con_PHP_y_MySQL.pdf
Desarrollo_web_con_PHP_y_MySQL.pdfMauricioGArmoa
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Facescok12v
 
Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)javier_ot99
 
INFOSAN Curso de delphi básico
INFOSAN Curso de delphi básicoINFOSAN Curso de delphi básico
INFOSAN Curso de delphi básicoFRANCIACOCO
 
Zend framework
Zend frameworkZend framework
Zend frameworkluislolo
 
Zen Scaffolding - Programador PHP
Zen Scaffolding - Programador PHPZen Scaffolding - Programador PHP
Zen Scaffolding - Programador PHPJuan Belón Pérez
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesdeivit86
 
Usando Netbeans para desarrollos en PHP
Usando Netbeans para desarrollos en PHPUsando Netbeans para desarrollos en PHP
Usando Netbeans para desarrollos en PHPDKR Visión SRL
 
Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSIan Monge Pérez
 
Computación evolutiva no tradicional
Computación evolutiva no tradicionalComputación evolutiva no tradicional
Computación evolutiva no tradicionalJuan J. Merelo
 
7 razones para usar funciones en php
7 razones para usar funciones en php7 razones para usar funciones en php
7 razones para usar funciones en phpJOSEHERIBERTO
 
Servidor de prueba wamp
Servidor de prueba wampServidor de prueba wamp
Servidor de prueba wampedinson
 
Entity Framework ó Linq SQL - Visual Studio 2012
Entity Framework  ó  Linq SQL - Visual Studio 2012Entity Framework  ó  Linq SQL - Visual Studio 2012
Entity Framework ó Linq SQL - Visual Studio 2012Naim Jhon Cruzado Paredes
 

Similar to Selenium with lettuce and python (20)

Selenium ff
Selenium ffSelenium ff
Selenium ff
 
Desarrollo_web_con_PHP_y_MySQL.pdf
Desarrollo_web_con_PHP_y_MySQL.pdfDesarrollo_web_con_PHP_y_MySQL.pdf
Desarrollo_web_con_PHP_y_MySQL.pdf
 
Que es php
Que es phpQue es php
Que es php
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
 
Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)
 
INFOSAN Curso de delphi básico
INFOSAN Curso de delphi básicoINFOSAN Curso de delphi básico
INFOSAN Curso de delphi básico
 
Zend framework
Zend frameworkZend framework
Zend framework
 
REPORTES
REPORTESREPORTES
REPORTES
 
Zen Scaffolding - Programador PHP
Zen Scaffolding - Programador PHPZen Scaffolding - Programador PHP
Zen Scaffolding - Programador PHP
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensiones
 
Usando Netbeans para desarrollos en PHP
Usando Netbeans para desarrollos en PHPUsando Netbeans para desarrollos en PHP
Usando Netbeans para desarrollos en PHP
 
J2ee jsf
J2ee jsfJ2ee jsf
J2ee jsf
 
Taller de zan php
Taller de zan phpTaller de zan php
Taller de zan php
 
Zend Framework
Zend FrameworkZend Framework
Zend Framework
 
Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JS
 
Manual php
Manual phpManual php
Manual php
 
Computación evolutiva no tradicional
Computación evolutiva no tradicionalComputación evolutiva no tradicional
Computación evolutiva no tradicional
 
7 razones para usar funciones en php
7 razones para usar funciones en php7 razones para usar funciones en php
7 razones para usar funciones en php
 
Servidor de prueba wamp
Servidor de prueba wampServidor de prueba wamp
Servidor de prueba wamp
 
Entity Framework ó Linq SQL - Visual Studio 2012
Entity Framework  ó  Linq SQL - Visual Studio 2012Entity Framework  ó  Linq SQL - Visual Studio 2012
Entity Framework ó Linq SQL - Visual Studio 2012
 

More from Karen Wiznia

Lettuce example using scenarios outline
Lettuce example using scenarios outlineLettuce example using scenarios outline
Lettuce example using scenarios outlineKaren Wiznia
 
Lettuce example using simple scenario
Lettuce example using simple scenarioLettuce example using simple scenario
Lettuce example using simple scenarioKaren Wiznia
 
Anteproyecto - código - Video final
Anteproyecto - código - Video finalAnteproyecto - código - Video final
Anteproyecto - código - Video finalKaren Wiznia
 
Arduino - código - video
Arduino - código - videoArduino - código - video
Arduino - código - videoKaren Wiznia
 
Arduino - telesketch automático
Arduino - telesketch automáticoArduino - telesketch automático
Arduino - telesketch automáticoKaren Wiznia
 
Requests lettuce y python
Requests lettuce y pythonRequests lettuce y python
Requests lettuce y pythonKaren Wiznia
 
Testing & selenium - examples
Testing & selenium - examplesTesting & selenium - examples
Testing & selenium - examplesKaren Wiznia
 
Requests con lettuce y python
Requests con lettuce y pythonRequests con lettuce y python
Requests con lettuce y pythonKaren Wiznia
 
Crear un repositorio con Gir Bash
Crear un repositorio con Gir BashCrear un repositorio con Gir Bash
Crear un repositorio con Gir BashKaren Wiznia
 

More from Karen Wiznia (10)

Lettuce example using scenarios outline
Lettuce example using scenarios outlineLettuce example using scenarios outline
Lettuce example using scenarios outline
 
Lettuce example using simple scenario
Lettuce example using simple scenarioLettuce example using simple scenario
Lettuce example using simple scenario
 
Anteproyecto - código - Video final
Anteproyecto - código - Video finalAnteproyecto - código - Video final
Anteproyecto - código - Video final
 
Arduino - código - video
Arduino - código - videoArduino - código - video
Arduino - código - video
 
Arduino - telesketch automático
Arduino - telesketch automáticoArduino - telesketch automático
Arduino - telesketch automático
 
Requests lettuce y python
Requests lettuce y pythonRequests lettuce y python
Requests lettuce y python
 
Testing & selenium - examples
Testing & selenium - examplesTesting & selenium - examples
Testing & selenium - examples
 
Requests con lettuce y python
Requests con lettuce y pythonRequests con lettuce y python
Requests con lettuce y python
 
Crear un repositorio con Gir Bash
Crear un repositorio con Gir BashCrear un repositorio con Gir Bash
Crear un repositorio con Gir Bash
 
Malware
MalwareMalware
Malware
 

Recently uploaded

Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 

Recently uploaded (20)

Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 

Selenium with lettuce and python

  • 1. 1 Selenium with lettuce and python ¿Qué es Selenium? Seleniumesunentornode pruebasde software paraaplicacionesweb. Esposible escribir estaspruebasennumerososlenguajesde programacióntalescomojava,python,php,ruby, etc.En este caso,noscentraremosencómo realizarlaspruebasenPhyton,perolarealidades que de un lenguaje aotrolas diferenciassonmínimas.Estaspruebaspuedenejecutarse utilizandolamayoríade losnavegadoreswebyendiferentessistemasoperativossinningún problema. Seleniumestáformadopornumerososcomponentes,entre losque nosencontramos: SeleniumIDE,SeleniumclientAPI,Seleniumremote control,SeleniumWebDriverySelenium Grid.Nosotrosrealizaremosel siguiente tutorial conSeleniumWebDriver. ¿Paraqué se utiliza Selenium WebDriver? SeleniumWebDriverse utilizaparatestearel correctofuncionamientode unapáginaweb.Es decirque la páginahaga loque tengaque hacer.Esto lo realizaenviandocomandosauna páginaweb,y obteniendoresultados.Unade las cualidadesprincipales,esque el Selenium WebDrivernonecesitaunservidorespecial paraejecutarlostests,si noque inicia directamente el navegadorindicadoal comenzarlaejecucióndel test. Ventajas de Selenium WebDriver  Testingmultibrowser:soportandoejecucionesdirectassobre IE,MozillayChrome.  Control de variosframes,popups,alerts,etc.  Navegaciónentre páginas.  Es muy fácil añadirnuevasfuncionalidadesalos tests.  No necesitaunservidorpropioparaejecutarlostest(comoocurre enotros componentesde Selenium).  Permite realizarpruebasenpáginasque se ejecutanendispositivosmóvilesgraciasal AndroidDriveryIphoneDriver.  Es muy rápidoya que realiza llamadasdirectas,sinningunaintervenciónexterna. A continuaciónrealizaremospasoapaso algunosejemplosconSeleniumWebDriverylettuce sobre una páginaweb. Ejemplo: Supongamoslaweb http://www.cheesecake.com/.A continuaciónrealizaremosuntesteode algunade las funcionesposiblesque podemosimplementarconestaherramienta. Lo primeroque tenemosque hacerescrear unproyectoy dentrounarchivo .feature yotro.py como muestralasiguiente imagen:
  • 2. 2 Una vez hechoesto,procederemosacrear el feature especificandolasacciones(de manera más clara posible,conloque queramosque haganuestrotest).Encuyocaso, el archivopuede serde la siguientemanera: Una vez hechoesto, procederemosacompletarel archivo.pyque contendrátantossteps como líneastengael scenario. El códigode losstepspodría ser de la siguientemanera:
  • 3. 3 Lo primeroque tenemosque haceresimportartodaslaslibreríasde lettuce yde Selenium, el WebDriver. A continuación,pondremoscomovariable global el driver,que eslapaginaa lacual le voya realizarel testeo. Estavariable lapongocomoglobal,yaque la utilizaré entodoslossteps.Si no lapusiese comovariable global,tendríaque inicializarlaencadaunode losstepsy se abriría una ventananuevacadavezque accedoa un step. A continuación,ycomohemosdichoantes,tengotantosstepscomolíneastengodentrodel scenario. Esta línea,me permite seleccionarunelemento.Es importante destacarque lalíneacompleta esla siguiente: element = driver.find_element_by_xpath("/html/body/form/div[5]/div/di v/div[3]/div[3]/div/div[2]/div/table/tbody/tr/td/div/div/a/ img").click() A pesarde que no se aprecie enlaimagen,termina conun“.click()”. Estalíneame sirve en cualquiercasopara seleccionarcualquierelemento,loúnicoque tengoque hacerescambiar el xpathpara cada unode loselementos.
  • 4. 4 Es importante destacar,que ademásde lalocalizaciónporxpathque estamosrealizandoen este caso,tambiénse puede realizarlalocalizaciónpornombre,id,tag,nombre de laclase o CSS selectorconlossiguientesmétodosdriver.find_element_by_name, driver.find_element_by_id,driver.find_element_by_tag_name, driver.find_element_by_class_name odriver.find_element_by_css_selector respectivamente. Esta línea,permite borrarla informaciónque hayenuncuadro de texto,si esque tiene informaciónpordefecto. La siguientelíneanospermiteescribirinformaciónenel cuadrode texto,enel que anteriormente borre suinformaciónpordefecto.El valorque vaentre () esaquel que escribiré dentrodel box. El select,nospermite seleccionarunelementode undesplegable.El procedimientoes exactamente el mismoque antes,simplemente que el xpathcambiasegúnel correspondiente. En este caso,igual que antes,la líneacompletaeslasiguiente: select = driver.find_element_by_xpath("/html/body/form/div[5]/div/di v/div[4]/div/div[2]/table/tbody/tr[5]/td/select/option[4]") .click() Resultadosobtenidos: Despuésdel primerstep: Despuésdel segundostep:
  • 6. 6 Despuésdel últimostep: Otras funcionalidades: Ademásde todoesto,que eslo básico,nosinteresasaberque otrasfuncionalidadestiene Selenium.Entre ellasnosencontramos:  Drag and drop Para explicaresto,loharemosmediante el ejemplode www.amazon.co.uk. Al igual que antescreamoslos.feature correspondientesal igual que los.pyconlos stepsnecesarios. Para realizarel drag anddrop se hace de la siguiente manera: La primeralíneaseleccionael objetoque deseamover. En la segundalínea,seleccionael xpathdel lugardonde vaadejarse ese objeto En la terceralínearealizoel dragand drop de esosdosobjetos.  Foward: Con lalínea avanzamosa la páginasiguiente  Back: Con lalínea vamosa la páginaanterior.  Explicitwait
  • 7. 7 Se utilizacuandoqueremosindicarle al testque espere hastaque se cumplacierta condición.  Implicitwait: Se utilizaparaindicarque el máximode tiempoque puede esperaresel indicado dentrode losparéntesis.  Close: Se utilizaparacerrar laventanauna vezhayamosfinalizadoel test. Excepciones: Para poderutilizaralgunaexcepciónesnecesarioimportarlaconla siguientelíneade código: Dentrode los [] hay que ponerel nombre de laexcepción.Si queremosimportarmás de una excepciónhemosde hacerlomediantecomas. Lasexcepcionesque podemos manejarsonlas siguientes: o ElementNotSelectableException:hasintentadoseleccionarunelementoque no puede seleccionarse. o ErrorInResponseException:lanzalaexcepcióncuandohayunproblemadel ladodel servidor. o InvalidSwitchToTargetException:Cuandolaventanaalaque quierocambiar no existe. o MoveTargetOutOfBoundsException:Cuandoel elemento que quierohacer drop esinvalido. Estos sonalgunasde muchas excepcionesque podemosutilizar.Paramás informaciónsobre lasexcepcionesvisitarlapágina: https://selenium- python.readthedocs.org/api.html CapyBara with lettuce and python Lo primeroque hayque hacer esinstalarpycabara,para ello,ponemoslasiguiente línea:
  • 8. 8 Y si se ha instaladocorrectamente saldránlossiguientesmensajes: ¿Qué es pycabara? Es una implementaciónde pythonde capybaraque permite realizartestenaplicacionesweb. Simulacomoun usuariointeractúaconla web. ¿Paraqué se utiliza? Ventajas de pycabara  Trabaja “out of the box”.  Tiene unaAPImuyintuitivay fácil de aprenderymanejarpara el usuario.  Tiene unafuerte sincronización,loque significaque nohaynecesidadde sincronizar lostestmanualmente paraterminarel proceso.