Selenium web driver in Java

45
Java Selenium Webdriver UF5 - Programació Xavier Sala Pujolar Institut Cendrassos

Transcript of Selenium web driver in Java

Page 1: Selenium web driver in Java

Java

Selenium Webdriver

UF5 - ProgramacióXavier Sala Pujolar

Institut Cendrassos

Page 2: Selenium web driver in Java
Page 3: Selenium web driver in Java

Selenium són un grup d’eines d’automatització de navegadorsSelenium

IDE Selenium 2

Page 4: Selenium web driver in Java

Mira el navegador...

es mou sol!Automatització?

Page 5: Selenium web driver in Java

Es fan servir sobretot per fer proves de funcionament d’aplicacions web

Page 6: Selenium web driver in Java

Selenium IDE

Component de Firefox per crear

proves ràpides

Page 7: Selenium web driver in Java

Permet controlar navegadors des de llenguatges de programació

Selenium 2

Page 8: Selenium web driver in Java

Alguns navegadors necessiten un driver per funcionar

Per aquests no cal

Page 9: Selenium web driver in Java

Hi ha navegadors headless (no tenen entorn gràfic)

Page 10: Selenium web driver in Java

Combinat amb Selenium Server es poden controlar alhora diversos navegadors

Page 11: Selenium web driver in Java

Moltes de les eines de test funcional fan servir o poden fer servir SeleniumRobot

framework

Page 12: Selenium web driver in Java

Selenium 2 des de Java

Page 13: Selenium web driver in Java

La forma més fàcil d’usar Selenium és crear projectes amb Maven o Gradle

Configuració de Maven

Page 14: Selenium web driver in Java

També es pot descarregar la llibreria i afegir-la al projecte

Page 15: Selenium web driver in Java

Els programes comencen creant el Driver

Obre una instància del navegador

Page 16: Selenium web driver in Java

Pels navegadors que necessiten driver s’ha d’especificar on és

Camí al binari del driver

Page 17: Selenium web driver in Java

Per tancar el navegador al acabar el programa

navegador.close()

navegador.quit()

Només tanca la finestra activa

Tanca totes les finestres

Page 18: Selenium web driver in Java

El mètode navigate() permet navegar

.to(“www.iescendrassos.net”).refresh()

.back()

.forward()

Page 19: Selenium web driver in Java

Obre el navegador i va a www.iescendrassos.net

Page 20: Selenium web driver in Java

El mètode get() també permet navegar

Bloqueja fins que la pàgina es carrega

No redirigeix, sinó que fa un GET

Page 21: Selenium web driver in Java

Amb manage().window() podem controlar l’aspecte de la finestra

.maximize()

.fullScreen()

.setPosition(...)

Page 22: Selenium web driver in Java

Es pot obtenir informació de la pàgina activa

getTitle()

getPageSource()

getCurrentUrl()

Page 23: Selenium web driver in Java

Es poden fer captures de pantalla de la pàgina

Page 24: Selenium web driver in Java

Es pot cercar un element o diversos dins de la pàgina

WebElement

List<WebElement>

WebElement

Page 25: Selenium web driver in Java

By.className(“classe”)

By.cssSelector(“a”)

By.id(“password”)

By.partialName(“go”)

By.tagName(“a”)

By.linkText(“CF”)

By.name(“classe”)

By.xpath(“//a”)

Hi ha diferents Locators

Page 26: Selenium web driver in Java

NoSuchElementFoundException

findElement() quan falla genera una excepció

No hi ha <h1>frens!</h1>

findElements() retorna una llista buida

Page 27: Selenium web driver in Java

Es pot treure informació dels WebElements

<html><head> <title>X</title></head><body> <a href=”http://www.iescendrassos.net”> Centre </a></body></html>

Centre

http://iescendrassos.net

getText()getAttribute()getCssValue()isEnabled()isDisplayed()isSelected()...

Page 28: Selenium web driver in Java

Se’ls hi poden enviar comandes

.sendKeys(“Pep”)

Pep

.click()

.submit()

.clear()

Page 29: Selenium web driver in Java

Es pot enviar qualsevol tecla als elements

Les constants estan definides a Keys

Page 30: Selenium web driver in Java

Les tecles enviades poden ser les que vulguem ... Fem “zoom out” enviant

CTRL + -

Page 31: Selenium web driver in Java

Els DropBox es poden fer servir a partir de l’objecte Select

.selectByVisibleText(“fr”)

.selectByValue(“fr”)

.selectByIndex(2)

Permet fer qualsevol cosa amb el control

Page 32: Selenium web driver in Java

Es poden gestionar les cookies a través de manager()

addCookie()getCookie()getCookies()deleteCookieNamed()deleteCookie()deleteAllCookies()...

Page 33: Selenium web driver in Java

finestra1

finestra2Les comandes en Selenium només van a la finestra activa

A vegades les pàgines web obren noves finestres

Page 34: Selenium web driver in Java

finestra1

finestra2

Es poden obtenir els identificadors (handles) de les finestres obertes

Page 35: Selenium web driver in Java

A partir del handle es pot canviar la finestra activa

finestra1

finestra2

Page 36: Selenium web driver in Java

Es poden definir temps d’espera per evitar bloquejos

implícits: Si no acaba de carregar en 10 segons continua

Explícits

Page 37: Selenium web driver in Java

Si les pàgines es renderitzen amb Javascript pot ser que Selenium vagi massa ràpid

Condició

HA d’esperar al Javascript

Page 38: Selenium web driver in Java

JavascriptExecutor permet executar Javascript en una pàgina

Si la pàgina usa JQUERY també es pot fer servir!

Page 39: Selenium web driver in Java

Per tant es pot fer servir JQuery per seleccionar elements

Page 40: Selenium web driver in Java

Es poden emetre events de teclat i de rata

Advanced User Interactions API

Page 41: Selenium web driver in Java

Objectes ACTION i ACTIONS

Mou el cursor a sobre la imatge Doble clic

Page 42: Selenium web driver in Java

text

DIV

Page 43: Selenium web driver in Java
Page 44: Selenium web driver in Java

A les seves ordres

A les seves ordres

Page 45: Selenium web driver in Java

Versió 1.0.0 - 2016