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

Más contenido relacionado

La actualidad más candente (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 a Selenium with lettuce and python

Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
cok12v
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensiones
deivit86
 
Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JS
Ian Monge Pérez
 
Servidor de prueba wamp
Servidor de prueba wampServidor de prueba wamp
Servidor de prueba wamp
edinson
 

Similar a 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
 

Más de 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
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (11)

Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 

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.