Workshop
Selenium
GTS/CE
About me
❏ Possui 8 anos de experiência em TI, com 7 anos de experiência Teste de
Software em projetos internacionais e nacionais, com experiência em
Testes Automatizados usando Selenium RC, Selenium WebDriver e
Cucumber, possui CSM pela Scrum Alliance e CTFL pela ISTQB.
❏ Contatos
❏ Gmail: otavio.landim@gmail.com
❏ Github: www.github.com/otaviolandim
❏ Twitter: otaviolandiim | Skype: otaviolandim
Agenda
❏ Introdução ao Selenium
❏ Navegando entre as páginas
❏ Localizando elementos
❏ Select
❏ Alerts
❏ Frames
❏ Actions
❏ Headless Browsers
Referências
❏ Site oficial do Selenium
❏ http://www.seleniumhq.org/
❏ Página de desenvolvimento
❏ https://code.google.com/p/selenium/
Download
❏ Link para download
❏ http://www.seleniumhq.org/download/
Definição
❏ Selenium é uma biblioteca que permite automatizar ações em aplicações web.
❏ Linguagens: Java, C#, Python e Ruby.
❏ Browsers: Chrome, Firefox, Safari, IE, Opera, Headless.
❏ É open-source.
Outras Definições
❏ Selenium IDE, é uma ferramenta utilizada para o desenvolvimento de
scripts de teste com Selenium através de um plugin para o Firefox, que
desenvolve scripts através do método Record and Play (Gravação e
Execução).
❏ Selenium Grid, é uma extensão do Selenium que permite executar testes
remotos e testes distribuídos/paralelos. Permite gerenciar múltiplos
ambientes de um único ponto para que possamos executar testes em
diferentes configurações de browsers e sistemas operacionais.
História
❏ Selenium 1 ou Selenium RC, ele foi criado em 2004, nos laboratórios da
Thoughtworks em Chicago, por Jason Huggins.
❏ Selenium 2 ou Selenium WebDriver, foi criado em 2009, o criador do
WebDriver, Simon Stewart fez o merge com Selenium RC.
Conhecimentos Básicos
Capturando Elementos
❏ Firebug
❏ Tools Chrome
Firebug
Comandos Básicos
❏ Iniciando o Firefox
❏ Devemos informar qual o browser iremos utilizar.
❏ Firefox é suportado nativamente no WebDriver. Outros navegadores não são suportados.
❏ Como iniciar o Firefox?
WebDriver driver = new FirefoxDriver();
Comandos Básicos
❏ Navegando entre páginas
driver.get(“http://www.google.com”);
driver.navigate().to(“http://www.globo.com”);
driver.navigate().back();
driver.navigate().forward();
driver.navigate().refresh();
Comandos Básicos
❏ Fechar browser
❏ Fecha a janela atual.
❏ driver.close()
❏ Fecha o browser.
❏ driver.quit()
Comandos Básicos
❏ Obtendo informações
❏ Driver
❏ DOM
❏ WebElement é uma classe que representa um elemento HTML
WebElement
❏ Para encontrar um elemento é necessário informar a estratégia.
❏ By.id
❏ By.name
❏ By.className
❏ By.tagName
❏ By.linkText
Css
❏ Forma de localizar um elemento através do seu estilo.
driver.findElement(By.cssSelector(“input”));
driver.findElement(By.cssSelector(“#id”));
driver.findElement(By.cssSelector(“.class”));
Xpath
❏ Xpath é uma linguagem de caminhos de um XML.
❏ Busca por xpath é mais lento.
driver.findElement(By.xpath(“//input”));
driver.findElement(By.xpath(“//input[@id=’id_elemento’]”));
driver.findElement(By.xpath(“//elementoPai/elementoFilho”));
driver.findElement(By.xpath(“//input[@class=‘class_elemento’]”));
Firepath
❏ Facilitar sua vida!
❏ Para adicionar o Firepath
❏ https://addons.mozilla.org/pt-br/firefox/addon/firepath/
Firepath
Select
❏ Utilizamos a classe select para trabalhar com combobox.
Select select = new Select(driver.findElement(By.id(“id_select”)));
select.deselectAll();
select.selectByIndex(index);
select.selectByValue(“value”);
select.selectByVisibleText(“text_visible”);
Alerts
❏ São mensagens em JavaScript, que retira o foco da janela atual.
Alert alert = driver.switchTo().alert();
alert.getText();
alert.dismiss();
alert.accept();
alert.sendKeys(“Enviar Texto”);
Frames
❏ Um frame permite que diferentes arquivos HTML sejam colocados em um
única página.
❏ Devemos identificar um frame pelo elemento <frame>
❏ Captura o frame pelo nome/index
❏ driver.switchTo().frame(“nomeframe”);
❏ driver.switchTo().frame(index);
❏ Captura a janela principal
❏ driver.switchTo().defaultContent();
Actions
❏ Utilizada para emular os eventos pelo teclado e mouse.
❏ dragAndDrop, clickAndHold, moveToElement, doubleClick
WebElement drag = driver.findElement(By.id(“id_elemento”));
WebElement drop = driver.findElement(By.id(“id_elemento”));
Actions actions = new Actions(driver);
actions.dragAndDrop(drag, drop).perform();
Headless Browser
❏ PhantomJS
❏ HtmlUnitDriver
Headless Browser
❏ HtmlUnit
❏ HtmlUnitDriver driver = new HtmlUnitDriver();
❏ Habilitar JavaScript
❏ HtmlUnitDriver driver = new HtmlUnitDriver(true);
Obrigado!!!

Workshop de Selenium WebDriver.

  • 1.
  • 2.
    About me ❏ Possui8 anos de experiência em TI, com 7 anos de experiência Teste de Software em projetos internacionais e nacionais, com experiência em Testes Automatizados usando Selenium RC, Selenium WebDriver e Cucumber, possui CSM pela Scrum Alliance e CTFL pela ISTQB. ❏ Contatos ❏ Gmail: otavio.landim@gmail.com ❏ Github: www.github.com/otaviolandim ❏ Twitter: otaviolandiim | Skype: otaviolandim
  • 3.
    Agenda ❏ Introdução aoSelenium ❏ Navegando entre as páginas ❏ Localizando elementos ❏ Select ❏ Alerts ❏ Frames ❏ Actions ❏ Headless Browsers
  • 4.
    Referências ❏ Site oficialdo Selenium ❏ http://www.seleniumhq.org/ ❏ Página de desenvolvimento ❏ https://code.google.com/p/selenium/
  • 5.
    Download ❏ Link paradownload ❏ http://www.seleniumhq.org/download/
  • 6.
    Definição ❏ Selenium éuma biblioteca que permite automatizar ações em aplicações web. ❏ Linguagens: Java, C#, Python e Ruby. ❏ Browsers: Chrome, Firefox, Safari, IE, Opera, Headless. ❏ É open-source.
  • 7.
    Outras Definições ❏ SeleniumIDE, é uma ferramenta utilizada para o desenvolvimento de scripts de teste com Selenium através de um plugin para o Firefox, que desenvolve scripts através do método Record and Play (Gravação e Execução). ❏ Selenium Grid, é uma extensão do Selenium que permite executar testes remotos e testes distribuídos/paralelos. Permite gerenciar múltiplos ambientes de um único ponto para que possamos executar testes em diferentes configurações de browsers e sistemas operacionais.
  • 8.
    História ❏ Selenium 1ou Selenium RC, ele foi criado em 2004, nos laboratórios da Thoughtworks em Chicago, por Jason Huggins. ❏ Selenium 2 ou Selenium WebDriver, foi criado em 2009, o criador do WebDriver, Simon Stewart fez o merge com Selenium RC.
  • 9.
  • 10.
  • 11.
  • 12.
    Comandos Básicos ❏ Iniciandoo Firefox ❏ Devemos informar qual o browser iremos utilizar. ❏ Firefox é suportado nativamente no WebDriver. Outros navegadores não são suportados. ❏ Como iniciar o Firefox? WebDriver driver = new FirefoxDriver();
  • 13.
    Comandos Básicos ❏ Navegandoentre páginas driver.get(“http://www.google.com”); driver.navigate().to(“http://www.globo.com”); driver.navigate().back(); driver.navigate().forward(); driver.navigate().refresh();
  • 14.
    Comandos Básicos ❏ Fecharbrowser ❏ Fecha a janela atual. ❏ driver.close() ❏ Fecha o browser. ❏ driver.quit()
  • 15.
    Comandos Básicos ❏ Obtendoinformações ❏ Driver ❏ DOM ❏ WebElement é uma classe que representa um elemento HTML
  • 16.
    WebElement ❏ Para encontrarum elemento é necessário informar a estratégia. ❏ By.id ❏ By.name ❏ By.className ❏ By.tagName ❏ By.linkText
  • 17.
    Css ❏ Forma delocalizar um elemento através do seu estilo. driver.findElement(By.cssSelector(“input”)); driver.findElement(By.cssSelector(“#id”)); driver.findElement(By.cssSelector(“.class”));
  • 18.
    Xpath ❏ Xpath éuma linguagem de caminhos de um XML. ❏ Busca por xpath é mais lento. driver.findElement(By.xpath(“//input”)); driver.findElement(By.xpath(“//input[@id=’id_elemento’]”)); driver.findElement(By.xpath(“//elementoPai/elementoFilho”)); driver.findElement(By.xpath(“//input[@class=‘class_elemento’]”));
  • 19.
    Firepath ❏ Facilitar suavida! ❏ Para adicionar o Firepath ❏ https://addons.mozilla.org/pt-br/firefox/addon/firepath/
  • 20.
  • 21.
    Select ❏ Utilizamos aclasse select para trabalhar com combobox. Select select = new Select(driver.findElement(By.id(“id_select”))); select.deselectAll(); select.selectByIndex(index); select.selectByValue(“value”); select.selectByVisibleText(“text_visible”);
  • 22.
    Alerts ❏ São mensagensem JavaScript, que retira o foco da janela atual. Alert alert = driver.switchTo().alert(); alert.getText(); alert.dismiss(); alert.accept(); alert.sendKeys(“Enviar Texto”);
  • 23.
    Frames ❏ Um framepermite que diferentes arquivos HTML sejam colocados em um única página. ❏ Devemos identificar um frame pelo elemento <frame> ❏ Captura o frame pelo nome/index ❏ driver.switchTo().frame(“nomeframe”); ❏ driver.switchTo().frame(index); ❏ Captura a janela principal ❏ driver.switchTo().defaultContent();
  • 24.
    Actions ❏ Utilizada paraemular os eventos pelo teclado e mouse. ❏ dragAndDrop, clickAndHold, moveToElement, doubleClick WebElement drag = driver.findElement(By.id(“id_elemento”)); WebElement drop = driver.findElement(By.id(“id_elemento”)); Actions actions = new Actions(driver); actions.dragAndDrop(drag, drop).perform();
  • 25.
  • 26.
    Headless Browser ❏ HtmlUnit ❏HtmlUnitDriver driver = new HtmlUnitDriver(); ❏ Habilitar JavaScript ❏ HtmlUnitDriver driver = new HtmlUnitDriver(true);
  • 27.