Arquivo

Posts Tagged ‘qa’

Usando Selenium WebDriver com Java – exemplo simples

Sempre preciso criar códigos para utilizarem o Selenium Webdriver com a finalidade de simular alguma ação e efetuar testes, então resolvi criar um exemplo para reutilizar e expandir sempre que necessário.

Para quem não conhece, de forma muito simplificada, podemos dizer que o Selenium é um utilitário que nos permite gravar/criar cenários de testes e os rodar, contando com poderosas estruturas tais como checagens de resultados (asserts), loops, cargas, etc.

O Selenium WebDriver basicamente permite que criemos estes cenários de testes, e os rodemos de uma aplicação. Ele suporta Java, Ruby, Python, etc.

Como falei, a descrição acima é muito simplista, pois meu foco aqui é demonstrar com as mãos na massa como criar um projeto Java e rodar um teste que vai simular a abertura da pagina do google e uma pesquisa. Vamos lá:

  1. Crie um projeto Maven Java
  2. Adicione as dependências do Selenium (seu Pom.xml deve ficar parecido com o codigo abaixo)
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.ibm.webdriver</groupId>
    <artifactId>wdrivertest</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>wdrivertest</name>
    <dependencies>
    <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-firefox-driver</artifactId>
    <version>3.6.0</version>
    </dependency>
    </dependencies>
    </project>
    
  3. Crie uma classe com o seguinte conteúdo:
    package wdrivertest;
    
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.firefox.FirefoxDriver;
    
    /**
    * This class show how to use selenium web driver
    * https://github.com/julianommartins/seleniumWebDriver
    * @author julianom
    *
    */
    public class WebDriverExample {
    public static void main(String[] args) {
    // If you want to load a existing profile
    // Option 1
    // ProfilesIni profile = new ProfilesIni();
    // FirefoxProfile julianoProf = profile.getProfile("default");
    // FirefoxOptions options = new FirefoxOptions().setProfile(julianoProf);
    //
    // Option 2
    // DesiredCapabilities capabilities = DesiredCapabilities.firefox();
    // capabilities.setCapability("marionette", true);
    // capabilities.setCapability(FirefoxDriver.PROFILE, julianoProf);
    
    // you need to download geckodriver (https://github.com/mozilla/geckodriver/releases)
    // and extract to your machine (this example is for Linux, if you
    // are using windows, change to your local folder and add the .exe extension
    System.setProperty("webdriver.gecko.driver", "/opt/geckodriver/geckodriver");
    // option 1 to use existing profile
    //WebDriver driver = new FirefoxDriver(options);
    // option 2 to use existing profile
    //WebDriver driver = new FirefoxDriver(capabilities);
    
    WebDriver driver = new FirefoxDriver();
    
    // Opening Google
    driver.get("http://www.google.com");
    
    // q its the search box name/ID
    WebElement element = driver.findElement(By.name("q"));
    
    // Seaching for Juliano Marcos Martins - me
    element.sendKeys("Juliano Marcos Martins");
    
    // Submit the form
    element.submit();
    
    // Printing the page title - just for example
    System.out.println("Page title is: " + driver.getTitle());
    
    // If you want to Close the browser, uncomment this line
    // driver.quit();
    }
    }
    
  4. Você vai precisar baixar o Geckodriver na sua máquina e colocar em um diretório qualquer. Veja que no código Java apontamos para esse diretório.
  5. Rode sua classe: você vai ver que uma instancia do Navegador será aberta e a busca efetuada.

O projeto maven pode ser baixado de https://github.com/julianommartins/seleniumWebDriver

Enjoy!