Java
Selenium Webdriver
UF5 - ProgramacióXavier Sala Pujolar
Institut Cendrassos
Selenium són un grup d’eines d’automatització de navegadorsSelenium
IDE Selenium 2
Mira el navegador...
es mou sol!Automatització?
Es fan servir sobretot per fer proves de funcionament d’aplicacions web
Selenium IDE
Component de Firefox per crear
proves ràpides
Permet controlar navegadors des de llenguatges de programació
Selenium 2
Alguns navegadors necessiten un driver per funcionar
Per aquests no cal
Hi ha navegadors headless (no tenen entorn gràfic)
Combinat amb Selenium Server es poden controlar alhora diversos navegadors
Moltes de les eines de test funcional fan servir o poden fer servir SeleniumRobot
framework
Selenium 2 des de Java
La forma més fàcil d’usar Selenium és crear projectes amb Maven o Gradle
Configuració de Maven
També es pot descarregar la llibreria i afegir-la al projecte
Els programes comencen creant el Driver
Obre una instància del navegador
Pels navegadors que necessiten driver s’ha d’especificar on és
Camí al binari del driver
Per tancar el navegador al acabar el programa
navegador.close()
navegador.quit()
Només tanca la finestra activa
Tanca totes les finestres
El mètode navigate() permet navegar
.to(“www.iescendrassos.net”).refresh()
.back()
.forward()
Obre el navegador i va a www.iescendrassos.net
El mètode get() també permet navegar
Bloqueja fins que la pàgina es carrega
No redirigeix, sinó que fa un GET
Amb manage().window() podem controlar l’aspecte de la finestra
.maximize()
.fullScreen()
.setPosition(...)
Es pot obtenir informació de la pàgina activa
getTitle()
getPageSource()
getCurrentUrl()
Es poden fer captures de pantalla de la pàgina
Es pot cercar un element o diversos dins de la pàgina
WebElement
List<WebElement>
WebElement
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
NoSuchElementFoundException
findElement() quan falla genera una excepció
No hi ha <h1>frens!</h1>
findElements() retorna una llista buida
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()...
Se’ls hi poden enviar comandes
.sendKeys(“Pep”)
Pep
.click()
.submit()
.clear()
Es pot enviar qualsevol tecla als elements
Les constants estan definides a Keys
Les tecles enviades poden ser les que vulguem ... Fem “zoom out” enviant
CTRL + -
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
Es poden gestionar les cookies a través de manager()
addCookie()getCookie()getCookies()deleteCookieNamed()deleteCookie()deleteAllCookies()...
finestra1
finestra2Les comandes en Selenium només van a la finestra activa
A vegades les pàgines web obren noves finestres
finestra1
finestra2
Es poden obtenir els identificadors (handles) de les finestres obertes
A partir del handle es pot canviar la finestra activa
finestra1
finestra2
Es poden definir temps d’espera per evitar bloquejos
implícits: Si no acaba de carregar en 10 segons continua
Explícits
Si les pàgines es renderitzen amb Javascript pot ser que Selenium vagi massa ràpid
Condició
HA d’esperar al Javascript
JavascriptExecutor permet executar Javascript en una pàgina
Si la pàgina usa JQUERY també es pot fer servir!
Per tant es pot fer servir JQuery per seleccionar elements
Es poden emetre events de teclat i de rata
Advanced User Interactions API
Objectes ACTION i ACTIONS
Mou el cursor a sobre la imatge Doble clic
text
DIV
A les seves ordres
A les seves ordres
Versió 1.0.0 - 2016
Top Related