Repositório de objetos em Selenium
⚡ Resumo Inteligente
Repositório de objetos em Selenium Centraliza os localizadores de elementos em um único arquivo externo, separando-os dos scripts de teste. Essa abordagem melhora a manutenção e permite que os testadores atualizem os localizadores em um único local, em vez de editar vários casos de teste.

O que é um repositório de objetos?
Um repositório de objetos é um local de armazenamento comum para todos os objetos. Em Selenium No contexto do WebDriver, os objetos normalmente seriam os localizadores usados para identificar exclusivamente os elementos da web.
A principal vantagem de usar um repositório de objetos é a segregação dos objetos dos casos de teste. Se o valor do localizador de um elemento web for alterado, apenas o repositório de objetos precisa ser modificado, em vez de alterar todos os casos de teste nos quais o localizador foi utilizado. Manter um repositório de objetos aumenta a modularidade da implementação do framework.
Tipos de repositórios de objetos em Selenium Web driver
Selenium O WebDriver não oferece um repositório de objetos integrado por padrão. No entanto, repositórios de objetos podem ser criados usando a abordagem de pares chave-valor, em que a chave se refere ao nome atribuído ao objeto e o valor se refere às propriedades usadas para identificar exclusivamente um objeto na página da web.
A seguir estão os tipos de repositórios de objetos que podem ser criados em Selenium WebDriver.
- Repositório de objetos usando arquivo de propriedades
- Repositório de objetos usando arquivo XML
Selenium Repositório de objetos do driver da Web usando arquivo de propriedades
Nessa abordagem, um arquivo de propriedades é um arquivo de texto no qual os dados são armazenados na forma de pares chave-valor. O tutorial a seguir abordará os seguintes tópicos.
Etapa 1) Criando um arquivo de propriedades no Eclipse
- Para começar, é necessário criar a seguinte estrutura de projeto Java no Eclipse. O nome do projeto e o nome do pacote podem ser quaisquer nomes válidos.
- Clique com o botão direito do mouse na pasta principal do projeto e selecione Novo -> Outro
- Na janela seguinte, selecione Geral -> Arquivo e clique no botão "Avançar".
- Na janela de novo recurso de arquivo, forneça um nome de arquivo válido com a extensão '.properties' e clique no botão 'Concluir'.
- Um arquivo chamado 'application.properties' deve ser exibido na Estrutura do Projeto.
Etapa 2) Armazenando dados no arquivo de propriedades
- Os dados são armazenados em um arquivo de propriedades na forma de pares chave-valor, sendo a chave única em todo o arquivo.
- Vamos tentar usar o arquivo de propriedades para identificar elementos da web usando valores de localização.
- Abra o arquivo application.properties em Eclipse e armazene os seguintes dados
MobileTesting=//a[text()='MOBILE TESTING'] EmailTextBox = philadelphia-field-email SignUpButton = philadelphia-field-submit
4) Para este tutorial, o seguinte site de demonstração está sendo usado:
https://demo.guru99.com/test/guru99home/Aqui está o cenário de teste:
- Clique no link de Teste Móvel usando XPath
- Navegar de volta
- Insira os dados na caixa de texto do e-mail usando o ID.
- Clique no botão Cadastre-se usando ID
Etapa 3) Lendo dados do arquivo de propriedades
- A leitura de dados de um arquivo de propriedades pode ser feita usando a classe Properties integrada, fornecida no pacote java.util.
- Inicialmente, é necessário criar um objeto da classe Properties, conforme abaixo.
Properties obj = new Properties();
- Precisamos criar um objeto da classe FileInputStream com o caminho para o arquivo de propriedades.
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
- A leitura de dados de um arquivo de propriedades pode ser feita usando o método `load` oferecido pela classe `Properties` em Java. O código abaixo demonstra o uso do método `load`.
Properties obj = new Properties(); FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties"); obj.load(objfile); String mobileTesting = obj.getProperty("MobileTesting");
A string 'mobileTesting' conterá o XPATH para identificar o link Mobile Testing na página da web.
Etapa 4) Usando arquivo de propriedades em scripts de teste
Um arquivo de propriedades pode ser usado em scripts de teste lendo os dados do arquivo e passando-os como parâmetro para o método `findElement`. O código abaixo demonstra o uso de dados lidos de um arquivo de propriedades em scripts de teste.
driver.findElement(By.xpath(obj.getProperty("MobileTesting"))).click(); driver.findElement(By.id(obj.getProperty("EmailTextBox"))).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(obj.getProperty("SignUpButton"))).click();
A seguir está o código completo usado para o cenário de teste acima.
package com.objectrepository.demo; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class DemoOR { public static void main(String[] args) throws IOException { // Create WebDriver Instance WebDriver driver; System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe"); driver = new ChromeDriver(); driver.get("https://demo.guru99.com/test/guru99home/"); driver.manage().window().maximize(); // Load the properties File Properties obj = new Properties(); FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties"); obj.load(objfile); // Navigate to link Mobile Testing and Back driver.findElement(By.xpath(obj.getProperty("MobileTesting"))).click(); driver.navigate().back(); // Enter Data into Form driver.findElement(By.id(obj.getProperty("EmailTextBox"))).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(obj.getProperty("SignUpButton"))).click(); } }
Selenium Repositório de objetos WebDriver usando arquivo XML
XML significa Linguagem de Marcação Extensível. Um arquivo XML utiliza o Modelo de Objeto de Documento (DOM) como estrutura básica. O formato do arquivo XML replica o formato HTML sobre o qual a página web é construída. Abaixo está a lista de tópicos que serão abordados.
- Criando um arquivo XML no Eclipse
- Armazenando dados em arquivo XML
- Lendo dados do arquivo XML
- Usando arquivo XML em scripts de teste
Etapa 1) Criando um arquivo XML no Eclipse
- A estrutura do projeto Java abaixo precisa ser criada em Eclipse.
- Clique com o botão direito na pasta do projeto, selecione Novo -> Outro
- Selecione o arquivo XML dentro da pasta XML e clique no botão 'Avançar'.
- Insira um nome de arquivo XML válido e clique no botão "Concluir".
- Um arquivo XML será adicionado à pasta do projeto conforme mostrado abaixo
Etapa 2) Armazenando dados em arquivo XML
Os dados podem ser armazenados em um arquivo XML no formato do Modelo de Objeto de Documento (DOM). Para simplificar, podemos usar o cenário de teste abaixo como exemplo.
- Clique no link de Teste Móvel usando XPath
- Voltar à página inicial
- Insira os dados na caixa de texto do e-mail usando o ID.
- Clique no botão Cadastre-se usando ID
Segue abaixo o formato do arquivo XML a ser utilizado.
<menu> <mobiletesting>//a[text()='MOBILE TESTING']</mobiletesting> <email> philadelphia-field-email</email> <signup> philadelphia-field-submit </signup> </menu>
Armazene o código XML acima em properties.xml
Na guia de design você verá
Etapa 3) Lendo dados do arquivo XML
1. A leitura de dados de um arquivo XML pode ser feita utilizando a classe nativa 'dom4j' do Java. Observe que você precisa adicionar os arquivos JAR abaixo ao caminho de construção do seu projeto antes de prosseguir com o código.
- jaxen.jar
- dom4j-1.6.jar
2. Abaixo está o código para ler dados do arquivo XML.
File inputFile = new File(System.getProperty("user.dir") +"\\properties.xml"); SAXReader saxReader = new SAXReader(); Document document = saxReader.read(inputFile); String mobileTesting = document.selectSingleNode("//menu/mobiletesting").getText(); String emailTextBox = document.selectSingleNode("//menu/email").getText(); String signUpButton = document.selectSingleNode("//menu/signup").getText();
3. Inicialmente, precisamos criar um objeto File e passá-lo como parâmetro para o método 'read' da classe SAXReader. Assim que os dados do arquivo XML forem lidos com sucesso, podemos acessar nós individuais do documento XML usando o método 'selectSingleNode'.
Etapa 4) Usando arquivo XML em scripts de teste
Um arquivo XML pode ser usado em scripts de teste lendo os dados do arquivo XML e passando-os como parâmetro para o método `findElement`. O código abaixo demonstra o uso de dados lidos de um arquivo XML em scripts de teste.
driver.findElement(By.xpath(mobileTesting)).click(); driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(signUpButton)).click();
O código abaixo demonstra o uso de um arquivo XML no Selenium WebDriver.
package com.objectrepository.demo; import java.io.*; import java.util.*; import org.dom4j.*; import org.dom4j.io.SAXReader; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class DemoORXML { public static void main(String[] args) throws DocumentException { // Creating WebDriver Instance WebDriver driver; System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe"); driver = new ChromeDriver(); driver.get("https://demo.guru99.com/test/guru99home/"); driver.manage().window().maximize(); // Reading XML File File inputFile = new File(System.getProperty("user.dir") +"\\properties.xml"); SAXReader saxReader = new SAXReader(); Document document = saxReader.read(inputFile); String mobileTesting = document.selectSingleNode("//menu/mobiletesting").getText(); String emailTextBox = document.selectSingleNode("//menu/email").getText(); String signUpButton = document.selectSingleNode("//menu/signup").getText(); // Navigating to Mobile Testing and back driver.findElement(By.xpath(mobileTesting)).click(); driver.navigate().back(); // Entering Form Data driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(signUpButton)).click(); } }
Baixe o WebDriver Eclipse PROJETO













