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: [email protected]❏ 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.
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/
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❏ HtmlUnit
❏ HtmlUnitDriver driver = new HtmlUnitDriver();❏ Habilitar JavaScript
❏ HtmlUnitDriver driver = new HtmlUnitDriver(true);