selenium web driver in java

Post on 13-Jan-2017

323 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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