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á:
- Crie um projeto Maven Java
- 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>
- 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(); } }
- 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.
- 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!