Selenium web driver in Java
date post
13-Jan-2017Category
Education
view
314download
0
Embed Size (px)
Transcript of Selenium web driver in Java
Java
Selenium Webdriver
UF5 - ProgramaciXavier Sala Pujolar
Institut Cendrassos
Selenium sn un grup deines dautomatitzaci de navegadorsSelenium IDE Selenium
2
Mira el navegador...
es mou sol!Automatitzaci?
Es fan servir sobretot per fer proves de funcionament daplicacions web
Selenium IDE
Component de Firefox per crear
proves rpides
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 grfic)
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 ms fcil dusar 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 instncia del navegador
Pels navegadors que necessiten driver sha despecificar on s
Cam al binari del driver
Per tancar el navegador al acabar el programa
navegador.close()
navegador.quit()
Noms tanca la finestra activa
Tanca totes les finestres
El mtode navigate() permet navegar
.to(www.iescendrassos.net).refresh()
.back()
.forward()
Obre el navegador i va a www.iescendrassos.net
El mtode get() tamb permet navegar
Bloqueja fins que la pgina es carrega
No redirigeix, sin que fa un GET
Amb manage().window() podem controlar laspecte de la finestra
.maximize()
.fullScreen()
.setPosition(...)
Es pot obtenir informaci de la pgina activa
getTitle()
getPageSource()
getCurrentUrl()
Es poden fer captures de pantalla de la pgina
Es pot cercar un element o diversos dins de la pgina
WebElement
List
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 frens!
findElements() retorna una llista buida
Es pot treure informaci dels WebElements
X
Centre
Centre
http://iescendrassos.net
getText()getAttribute()getCssValue()isEnabled()isDisplayed()isSelected()...
http://www.iescendrassos.net
Sels 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 lobjecte Select
.selectByVisibleText(fr)
.selectByValue(fr)
.selectByIndex(2)
Permet fer qualsevol cosa amb el control
Es poden gestionar les cookies a travs de manager()
addCookie()getCookie()getCookies()deleteCookieNamed()deleteCookie()deleteAllCookies()...
finestra1
finestra2Les comandes en Selenium noms van a la finestra activa
A vegades les pgines 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 despera per evitar bloquejos
implcits: Si no acaba de carregar en 10 segons continua
Explcits
Si les pgines es renderitzen amb Javascript pot ser que Selenium vagi massa rpid
Condici
HA desperar al Javascript
JavascriptExecutor permet executar Javascript en una pgina
Si la pgina 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