Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
1
Selenium with lettuce and python
¿Qué es Selenium?
Seleniumesunentornode pruebasde software paraaplicacionesweb. Esposib...
2
Una vez hechoesto,procederemosacrear el feature especificandolasacciones(de manera
más clara posible,conloque queramosqu...
3
Lo primeroque tenemosque haceresimportartodaslaslibreríasde lettuce yde Selenium, el
WebDriver.
A continuación,pondremos...
4
Es importante destacar,que ademásde lalocalizaciónporxpathque estamosrealizandoen
este caso,tambiénse puede realizarlalo...
5
Despuésdel tercerstep:
6
Despuésdel últimostep:
Otras funcionalidades:
Ademásde todoesto,que eslo básico,nosinteresasaberque otrasfuncionalidades...
7
Se utilizacuandoqueremosindicarle al testque espere hastaque se cumplacierta
condición.
 Implicitwait:
Se utilizaparain...
8
Y si se ha instaladocorrectamente saldránlossiguientesmensajes:
¿Qué es pycabara?
Es una implementaciónde pythonde capyb...
Upcoming SlideShare
Loading in …5
×

Selenium with lettuce and python

Introducción a Selenium utilizando Lettuce en Python. Guía explicativa sobre qué es, para qué se utiliza y cuales son las principales ventajas. Incluye un ejemplo paso a paso con imágenes y una breve introducción a Pycabara.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to comment

Selenium with lettuce and python

  1. 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. 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. 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. 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. 5. 5 Despuésdel tercerstep:
  6. 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. 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. 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.

×