Cos'è un repository di oggetti?
Un repository di oggetti è una posizione di archiviazione comune per tutti gli oggetti. Nel contesto Selenium WebDriver, gli oggetti sarebbero tipicamente i localizzatori utilizzati per identificare in modo univoco gli elementi web.
Il vantaggio principale dell'utilizzo del repository di oggetti è la separazione degli oggetti dai casi di test. Se il valore del localizzatore di un elemento web cambia, è necessario modificare solo il repository di oggetti anziché apportare modifiche in tutti i casi di test in cui è stato utilizzato il localizzatore. Il mantenimento di un repository di oggetti aumenta la modularità dell'implementazione del framework.
In questo tutorial imparerai-
- Cos'è un repository di oggetti?
- Tipi di archivi di oggetti in Selenium Web Driver
- Repository di oggetti Selenium Web Driver utilizzando il file delle proprietà
- Repository di oggetti Selenium WebDriver utilizzando file XML
Tipi di archivi di oggetti in Selenium Web Driver
Selenium WebDriver non offre un repository di oggetti integrato per impostazione predefinita. Tuttavia, i repository di oggetti possono essere costruiti utilizzando l'approccio della coppia chiave-valore in cui la chiave si riferisce al nome dato all'oggetto e il valore si riferisce alle proprietà utilizzate per identificare in modo univoco un oggetto all'interno della pagina web.
I seguenti sono i tipi di repository di oggetti che possono essere creati in Selenium WebDriver.
- Archivio oggetti utilizzando il file delle proprietà
- Repository di oggetti utilizzando il file XML
Repository di oggetti Selenium Web Driver utilizzando il file delle proprietà
In questo approccio, il file delle proprietà è un file di testo in cui i dati vengono memorizzati sotto forma di coppie chiave-valore. Il seguente tutorial affronterà i seguenti argomenti.
- Creazione di un file delle proprietà in eclipse
- Memorizzazione dei dati nel file delle proprietà
- Lettura dei dati dal file delle proprietà
- Utilizzo del file delle proprietà negli script di test
Passaggio 1) Creazione di un file delle proprietà in eclipse
- Per cominciare, la struttura del progetto java sottostante deve essere creata in eclipse. Il nome del progetto e il nome del pacchetto possono essere qualsiasi nome valido.
- Fare clic con il tasto destro sulla cartella del progetto principale e selezionare Nuovo-> Altro
- Nella finestra successiva, seleziona Generale -> File e fai clic sul pulsante "Avanti"
- Fornire un nome file valido con l'estensione ".properties" nella finestra della nuova risorsa file e fare clic sul pulsante "Fine"
- Un file denominato "application.properties" deve essere visualizzato nella struttura del progetto
Passaggio 2) Memorizzazione dei dati nel file delle proprietà
- I dati vengono archiviati nel file delle proprietà sotto forma di coppie chiave-valore, con la chiave univoca in tutto il file.
- Cercheremo di utilizzare il file delle proprietà per identificare gli elementi web utilizzando i valori del localizzatore.
- Aprire il file application.properties in Eclipse e memorizzare i seguenti dati
MobileTesting = // a [text () = 'MOBILE TESTING']EmailTextBox = philadelphia-field-emailSignUpButton = philadelphia-field-submit
4) Per questo tutorial, viene utilizzato il seguente sito Web dimostrativo: http://demo.guru99.com/test/guru99home/. Ecco lo scenario di prova:
- Fare clic sul collegamento Mobile Testing utilizzando XPATH
- Torna indietro
- Immettere i dati nella casella di testo dell'e-mail utilizzando l'ID
- Fare clic sul pulsante Registrati utilizzando l'ID
Passaggio 3) Lettura dei dati dal file delle proprietà
- La lettura dei dati dal file delle proprietà può essere eseguita utilizzando la classe Proprietà incorporata fornita nel pacchetto java.util.
- Inizialmente, è necessario creare un oggetto della classe Properties come di seguito
Proprietà obj = new Properties ();
- Dobbiamo creare un oggetto della classe FileInputStream con il percorso del file delle proprietà
FileInputStream objfile = nuovo FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");
- La lettura dei dati dal file delle proprietà può essere eseguita utilizzando il metodo di caricamento offerto dalla classe Properties in java. Il codice seguente mostra l'utilizzo del metodo di caricamento.
Proprietà obj = new Properties ();FileInputStream objfile = nuovo FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);String mobileTesting = obj.getProperty ("MobileTesting");
La stringa "mobileTesting" conterrà XPATH per identificare il collegamento Mobile Testing all'interno della pagina web.
Passaggio 4) Utilizzo del file delle proprietà negli script di test
Il file delle proprietà può essere utilizzato negli script di test leggendo i dati da un file delle proprietà e passando i dati come parametro al metodo findElement. Il codice seguente mostra l'utilizzo dei dati letti dal file delle proprietà negli script di test.
driver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). click ();driver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Questo indirizzo email è protetto dagli spambots. Devi abilitare JavaScript per vederlo.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). clic ();
Di seguito è riportato il codice completo utilizzato per lo scenario di test precedente.
pacchetto 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;lezione pubblica DemoOR {public static void main (String [] args) genera IOException {// Crea istanza WebDriverDriver WebDriver;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");driver = nuovo ChromeDriver ();driver.get ("http://demo.guru99.com/test/guru99home/");driver.manage (). window (). maxim ();// Carica il file delle proprietàProprietà obj = new Properties ();FileInputStream objfile = nuovo FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);// Nagigate per collegare Mobile Testing e Backdriver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). click ();driver.navigate (). back ();// Immettere i dati nel modulodriver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Questo indirizzo email è protetto dagli spambots. Devi abilitare JavaScript per vederlo.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). clic ();}}
Repository di oggetti Selenium WebDriver utilizzando file XML
XML è l'acronimo di Extensible Markup Language. Un file XML utilizza Document Object Model (DOM) come struttura di base. Il formato file XML replicherà il formato HTML su cui è costruita la pagina web. Di seguito è riportato l'elenco degli argomenti che verranno trattati.
- Creazione di un file XML in eclipse
- Memorizzazione dei dati su file XML
- Lettura di dati da file XML
- Utilizzo del file XML negli script di test
Passaggio 1) Creazione di un file XML in eclipse
- La seguente struttura del progetto Java deve essere creata in Eclipse.
- Fare clic con il tasto destro sulla cartella del progetto, selezionare Nuovo -> Altro
- Seleziona il file XML nella cartella XML e fai clic sul pulsante "Avanti"
- Immettere un nome di file XML valido e fare clic sul pulsante "Fine"
- Un file XML verrà aggiunto alla cartella del progetto come mostrato di seguito
Passaggio 2) Archiviazione dei dati su file XML
I dati possono essere memorizzati in file XML sotto forma di Document Object Model (DOM). Per semplicità, possiamo utilizzare lo scenario di test seguente come esempio.
- Fare clic sul collegamento Mobile Testing utilizzando XPATH
- Torna alla home page
- Immettere i dati nella casella di testo dell'e-mail utilizzando l'ID
- Fare clic sul pulsante Registrati utilizzando l'ID
Di seguito è riportato il formato del file XML da utilizzare.
Memorizza il codice XML sopra in properties.xml
Nella scheda di progettazione vedrai
Passaggio 3) Lettura dei dati dal file XML
1. La lettura dei dati dal file XML può essere eseguita utilizzando la classe "dom4j" incorporata in java. Si noti che è necessario aggiungere i seguenti file JAR nel percorso di compilazione del progetto prima di procedere con il codice.
- jaxen.jar
- dom4j-1.6.jar
2. Di seguito è riportato il codice per leggere i dati dal file XML.
File inputFile = nuovo file (System.getProperty ("user.dir") + "\\ properties.xml");SAXReader saxReader = nuovo 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. Inizialmente, dobbiamo creare un oggetto File e passarlo come parametro al metodo 'read' della classe SAXReader. Una volta che i dati del file XML sono stati letti correttamente, possiamo accedere ai singoli nodi del documento XML utilizzando il metodo "selectSingleNode".
Passaggio 4) Utilizzo del file XML negli script di test
Il file XML può essere utilizzato negli script di test leggendo i dati dal file XML e passando i dati come parametri al metodo findElement. Il codice seguente mostra l'utilizzo dei dati letti dal file XML negli script di test.
driver.findElement (By.xpath (mobileTesting)). click ();driver.findElement (By.id (emailTextBox)). sendKeys (" Questo indirizzo email è protetto dagli spambots. Devi abilitare JavaScript per vederlo.");driver.findElement (By.id (signUpButton)). clic ();
Il codice seguente dimostra l'uso del file XML in selenium WebDriver
pacchetto 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) genera DocumentException {// Creazione dell'istanza di WebDriverDriver WebDriver;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");driver = nuovo ChromeDriver ();driver.get ("http://demo.guru99.com/test/guru99home/");driver.manage (). window (). maxim ();// Lettura del file XMLFile inputFile = nuovo file (System.getProperty ("user.dir") + "\\ properties.xml");SAXReader saxReader = nuovo 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 ();// Navigazione verso Mobile Testing e ritornodriver.findElement (By.xpath (mobileTesting)). click ();driver.navigate (). back ();// Immissione dei dati del modulodriver.findElement (By.id (emailTextBox)). sendKeys (" Questo indirizzo email è protetto dagli spambots. Devi abilitare JavaScript per vederlo.");driver.findElement (By.id (signUpButton)). clic ();}}
Scarica il progetto WebDriver Eclipse
Sommario:
- Un repository di oggetti è una posizione di archiviazione comune per tutti gli oggetti
- Selenium WebDriver non offre un repository di oggetti integrato per impostazione predefinita
- È possibile creare 2 tipi di repository di oggetti in Selenium
- Archivio oggetti utilizzando il file delle proprietà
- Repository di oggetti utilizzando il file XML
- Il file delle proprietà è un file di testo in cui i dati vengono memorizzati sotto forma di coppie chiave-valore
- Il formato file XML replicherà il formato HTML su cui è costruita la pagina web.