Selenio - Webdriver
WebDriver è uno strumento per automatizzare il test delle applicazioni web. È popolarmente noto come selenio 2.0. WebDriver utilizza un framework sottostante diverso, mentre Selenium RC utilizza JavaScript Selenium-Core incorporato nel browser che presenta alcune limitazioni. WebDriver interagisce direttamente con il browser senza alcun intermediario, a differenza di Selenium RC che dipende da un server. Viene utilizzato nel seguente contesto:
Test multi-browser che include funzionalità migliorate per i browser che non sono ben supportate da Selenium RC (Selenium 1.0).
Gestione di più frame, più finestre del browser, popup e avvisi.
Navigazione della pagina complessa.
Navigazione utente avanzata come il drag-and-drop.
Elementi dell'interfaccia utente basati su AJAX.
Architettura
WebDriver viene spiegato al meglio con un semplice diagramma dell'architettura come mostrato di seguito.
Selenio RC Vs WebDriver
Selenio RC | Selenium WebDriver |
---|---|
L'architettura di Selenium RC è complicata, poiché il server deve essere attivo e funzionante prima di iniziare un test. | L'architettura di WebDriver è più semplice di Selenium RC, poiché controlla il browser dal livello del sistema operativo. |
Il server Selenio funge da intermediario tra il browser ei comandi Selenese. | WebDriver interagisce direttamente con il browser e utilizza il motore del browser per controllarlo. |
L'esecuzione dello script Selenium RC è più lenta, poiché utilizza un Javascript per interagire con RC. | WebDriver è più veloce, poiché interagisce direttamente con il browser. |
Selenium RC non può supportare l'esecuzione senza testa in quanto necessita di un browser reale con cui lavorare. | WebDriver può supportare l'esecuzione senza testa. |
È un'API semplice e piccola. | API complessa e un po 'grande rispetto a RC. |
API meno orientata agli oggetti. | API puramente orientata agli oggetti. |
Impossibile testare le applicazioni mobili. | Può testare applicazioni per iPhone / Android. |
Scripting utilizzando WebDriver
Facci capire come lavorare con WebDriver. Per dimostrazione, useremmohttps://www.calculator.net/. Eseguiremo un "Calcolatore percentuale" che si trova sotto "Calcolatore matematico". Abbiamo già scaricato i JAR WebDriver richiesti. Fare riferimento al capitolo "Configurazione ambientale" per i dettagli.
Step 1 - Avvia "Eclipse" dalla cartella Extracted Eclipse.
Step 2 - Seleziona l'area di lavoro facendo clic sul pulsante "Sfoglia".
Step 3 - Ora crea un "Nuovo progetto" dal menu "File".
Step 4 - Immettere il nome del progetto e fare clic su "Avanti".
Step 5- Vai alla scheda Librerie e seleziona tutti i JAR che abbiamo scaricato. Aggiungi il riferimento a tutti i JAR della cartella Selenium WebDriver Library e anche selenium-java-2.42.2.jar e selenium-java-2.42.2-srcs.jar.
Step 6 - Il pacchetto viene creato come mostrato di seguito.
Step 7 - Ora fai clic con il pulsante destro del mouse sul pacchetto e seleziona "Nuovo" >> "Classe" per creare una "classe".
Step 8 - Ora dai un nome alla classe e rendila la funzione principale.
Step 9 - Lo schema della classe è mostrato come di seguito.
Step 10- Ora è il momento di programmare. Lo script seguente è più facile da capire, in quanto contiene commenti incorporati per spiegare chiaramente i passaggi. Dai un'occhiata al capitolo "Localizzatori" per capire come catturare le proprietà degli oggetti.
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
public class webdriverdemo {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
//Puts an Implicit wait, Will wait for 10 seconds before throwing exception
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//Launch website
driver.navigate().to("http://www.calculator.net/");
//Maximize the browser
driver.manage().window().maximize();
// Click on Math Calculators
driver.findElement(By.xpath(".//*[@id = 'menu']/div[3]/a")).click();
// Click on Percent Calculators
driver.findElement(By.xpath(".//*[@id = 'menu']/div[4]/div[3]/a")).click();
// Enter value 10 in the first number of the percent Calculator
driver.findElement(By.id("cpar1")).sendKeys("10");
// Enter value 50 in the second number of the percent Calculator
driver.findElement(By.id("cpar2")).sendKeys("50");
// Click Calculate Button
driver.findElement(By.xpath(".//*[@id = 'content']/table/tbody/tr[2]/td/input[2]")).click();
// Get the Result Text based on its xpath
String result =
driver.findElement(By.xpath(".//*[@id = 'content']/p[2]/font/b")).getText();
// Print a Log In message to the screen
System.out.println(" The Result is " + result);
//Close the Browser.
driver.close();
}
}
Step 11 - L'output dello script precedente verrà stampato in Console.
Comandi più utilizzati
La tabella seguente elenca alcuni dei comandi utilizzati più di frequente in WebDriver insieme alla loro sintassi.
Sr.No. | Comando e descrizione |
---|---|
1 | driver.get("URL") Per passare a un'applicazione. |
2 | element.sendKeys("inputtext") Immettere del testo in una casella di input. |
3 | element.clear() Cancella il contenuto dalla casella di input. |
4 | select.deselectAll() Deseleziona tutte le OPZIONI dalla prima SELEZIONE nella pagina. |
5 | select.selectByVisibleText("some text") Selezionare l'OPZIONE con l'ingresso specificato dall'utente. |
6 | driver.switchTo().window("windowName") Spostare lo stato attivo da una finestra all'altra. |
7 | driver.switchTo().frame("frameName") Oscilla da un fotogramma all'altro. |
8 | driver.switchTo().alert() Aiuta a gestire gli avvisi. |
9 | driver.navigate().to("URL") Vai all'URL. |
10 | driver.navigate().forward() Per andare avanti. |
11 | driver.navigate().back() Per tornare indietro. |
12 | driver.close() Chiude il browser corrente associato al driver. |
13 | driver.quit() Esce dal driver e chiude tutte le finestre associate a quel driver. |
14 | driver.refresh() Aggiorna la pagina corrente. |