SlideShare una empresa de Scribd logo
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.

Más contenido relacionado

PPTX
PDF
DOCX
Lucelly php
PPTX
Java script
PPTX
Razones para el uso de funciones en php
PPTX
Salto condicional dilmerelser
PDF
Guia practica condicionales en java con NetBeans 01
PDF
Java swing
Lucelly php
Java script
Razones para el uso de funciones en php
Salto condicional dilmerelser
Guia practica condicionales en java con NetBeans 01
Java swing

La actualidad más candente (7)

PDF
Primer programa en 1
PDF
Métodos en Java-Con ejemplos
PDF
manual-batch-desde-0
DOCX
Variables
DOCX
Conversiones(1)
PPT
1 1 1 Una Sencilla Aplicacion Java
 
PPTX
Primer programa en 1
Métodos en Java-Con ejemplos
manual-batch-desde-0
Variables
Conversiones(1)
1 1 1 Una Sencilla Aplicacion Java
 
Publicidad

Similar a Selenium with lettuce and python (20)

DOCX
Selenium ff
PDF
Desarrollo_web_con_PHP_y_MySQL.pdf
PPTX
Que es php
PDF
Jsf Java Server Faces
PPTX
Manual de netbeans_7(2)(2)(2)
PDF
INFOSAN Curso de delphi básico
PDF
Zend framework
PPTX
PDF
Zen Scaffolding - Programador PHP
PPT
Joomladay 2008 Madrid - desarrollo de extensiones
DOCX
Usando Netbeans para desarrollos en PHP
PPTX
Taller de zan php
DOCX
Zend Framework
PPT
Mootools Y Otros Frameworks JS
DOC
ODP
Computación evolutiva no tradicional
PPTX
7 razones para usar funciones en php
PPT
Servidor de prueba wamp
PDF
Entity Framework ó Linq SQL - Visual Studio 2012
Selenium ff
Desarrollo_web_con_PHP_y_MySQL.pdf
Que es php
Jsf Java Server Faces
Manual de netbeans_7(2)(2)(2)
INFOSAN Curso de delphi básico
Zend framework
Zen Scaffolding - Programador PHP
Joomladay 2008 Madrid - desarrollo de extensiones
Usando Netbeans para desarrollos en PHP
Taller de zan php
Zend Framework
Mootools Y Otros Frameworks JS
Computación evolutiva no tradicional
7 razones para usar funciones en php
Servidor de prueba wamp
Entity Framework ó Linq SQL - Visual Studio 2012
Publicidad

Más de Karen Wiznia (10)

DOCX
Lettuce example using scenarios outline
DOCX
Lettuce example using simple scenario
DOCX
Anteproyecto - código - Video final
TXT
Arduino - código - video
DOCX
Arduino - telesketch automático
DOCX
Requests lettuce y python
DOCX
Testing & selenium - examples
DOCX
Requests con lettuce y python
DOCX
Crear un repositorio con Gir Bash
DOCX
Malware
Lettuce example using scenarios outline
Lettuce example using simple scenario
Anteproyecto - código - Video final
Arduino - código - video
Arduino - telesketch automático
Requests lettuce y python
Testing & selenium - examples
Requests con lettuce y python
Crear un repositorio con Gir Bash
Malware

Último (20)

PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PDF
CyberOps Associate - Cisco Networking Academy
PDF
Maste clas de estructura metálica y arquitectura
PDF
Diapositiva proyecto de vida, materia catedra
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PDF
Calidad desde el Docente y la mejora continua .pdf
PPT
Que son las redes de computadores y sus partes
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
Estrategia de apoyo tecnología grado 9-3
PDF
Influencia-del-uso-de-redes-sociales.pdf
PDF
taller de informática - LEY DE OHM
PPTX
Sesion 1 de microsoft power point - Clase 1
PDF
clase auditoria informatica 2025.........
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
Presentación PASANTIAS AuditorioOO..pptx
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
CyberOps Associate - Cisco Networking Academy
Maste clas de estructura metálica y arquitectura
Diapositiva proyecto de vida, materia catedra
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Propuesta BKP servidores con Acronis1.pptx
Plantilla para Diseño de Narrativas Transmedia.pdf
Power Point Nicolás Carrasco (disertación Roblox).pptx
Calidad desde el Docente y la mejora continua .pdf
Que son las redes de computadores y sus partes
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Estrategia de apoyo tecnología grado 9-3
Influencia-del-uso-de-redes-sociales.pdf
taller de informática - LEY DE OHM
Sesion 1 de microsoft power point - Clase 1
clase auditoria informatica 2025.........
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad

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.