top 25 selenium webdriver commands that you should know
Comandi Top Selenium WebDriver - Una guida fenomenale per i tester di automazione
Selenium WebDriver è uno dei più popolari strumenti di automazione di siti Web open source. La maggior parte dei miei colleghi tester di automazione preferisce la combinazione di WebDriver con Java.
In questo tutorial, discuterò 25 comandi Selenium WebDriver usati di routine insieme alla loro sintassi interessata e semplici esempi per una facile comprensione.
Cosa imparerai:
- Tipi di comandi in WebDriver
- I 7 migliori comandi al selenio con dettagli
- Elenco dei 25 comandi ed esempi di WebDriver più popolari
- # 1) ottieni ()
- # 2) getCurrentUrl ()
- # 3) trova elemento (per, per) e fai clic su ()
- # 4) isEnabled ()
- # 5) findElement (By, by) con sendKeys ()
- # 6) findElement (By, by) con getText ()
- # 7) Invia ()
- # 8) findElements (di, di)
- # 9) findElements (By, by) with size ()
- # 10) pageLoadTimeout (tempo, unità)
- # 11) implicitlyWait ()
- # 12) fino a () e visibilitàOfElementLocated ()
- # 13) untill () e alertIsPresent ()
- # 14) getTitle ()
- # 15) Seleziona
- # 16) navigare ()
- # 17) getScreenshotAs ()
- # 18) moveToElement ()
- # 19) dragAndDrop ()
- # 20) switchTo () e accept (), dismiss () e sendKeys ()
- # 21) getWindowHandle () e getWindowHandles ()
- # 22) getConnection ()
- #23) POI
- # 24) assertEquals (), assertNotEquals (), assertTrue () e assertFalse ()
- # 25) chiudi () ed esci ()
- Conclusione
- Lettura consigliata
Tipi di comandi in WebDriver
Nel ultimo tutorial sul selenio , abbiamo discusso di diversi tipi di avvisi riscontrati durante il test delle applicazioni basate sul Web e dei loro modi efficaci di gestione. Abbiamo discusso a lungo entrambi i tipi di avvisi, ad esempio 'avvisi basati sul Web' e 'avvisi basati su finestra'. Ti abbiamo anche fatto conoscere un'altra utility basata su Java denominata 'Robot Class' per gestire i pop-up basati su Windows.
Avanzando in avanti questa serie di tutorial su Selenium WebDriver , stavamo premendo vari comandi Selenium WebDriver comunemente e abitualmente usati . Discuteremo precisamente e brevemente ciascuno di questi comandi Selenium in modo da renderti in grado di utilizzare questi comandi in modo efficace ogni volta che si presenta la situazione.
Ogni file di lavoro Java di automazione inizia con la creazione di un riferimento del browser Web che desideriamo utilizzare come indicato nella sintassi seguente.
Esistono diversi metodi disponibili dall'interfaccia Webdriver. Questi metodi sono accessibili utilizzando la variabile di istanza conducente in un formato semplice driver.methodName (); . Tutti questi progetti di automazione includono la chiamata a questi metodi e il confronto e la valutazione di ciò che effettivamente restituiscono.
In termini semplici, possiamo generalmente classificare i comandi Webdriver come:
- Comandi del browser,
- Ottieni comandi,
- Comandi di navigazione,
- Comandi Webelement,
- Comandi di azione e
- Comandi dei risultati.
Dal contesto del test manuale, il risultato di un test, PASS o FAIL viene deciso dai comandi Result che di solito confrontano i risultati attesi e effettivi e il resto sono passaggi del testcase.
I 7 migliori comandi al selenio con dettagli
Solo per avere un'idea approssimativa, discuteremo dei seguenti comandi Selenium WebDriver e delle loro diverse versioni:
- ottenere() metodi
- Individuazione dei collegamenti tramite linkText () e partialLinkText ()
- Selezione di più elementi in un menu a discesa
- Invio di un modulo
- Gestione degli iframe
- vicino() e smettere() metodi
- La gestione delle eccezioni
# 1) metodi get ()
Comando WebDriver | Utilizzo |
---|---|
getAttribute () | • Il comando viene utilizzato per recuperare il valore dell'attributo specificato • Il comando richiede un singolo parametro di stringa che fa riferimento a un attributo di cui aspiriamo a conoscere il valore e restituisce come risultato un valore di stringa. driver.findElement (By.id ('findID')). getAttribute ('valore'); |
ottenere() | • Il comando avvia un nuovo browser e si apre l'URL specificato nell'istanza del browser • Il comando accetta un singolo parametro di tipo stringa che di solito è un URL dell'applicazione sotto test • Per gli utenti IDE Selenium, il comando potrebbe assomigliare molto al comando di apertura driver.get ('https://google.com'); |
getClass () | Il comando viene utilizzato per recuperare l'oggetto Class che rappresenta la classe di runtime di questo oggetto driver.getClass (); |
getCurrentUrl () | • Il comando viene utilizzato per recuperare l'URL della pagina Web a cui l'utente sta attualmente accedendo • Il comando non richiede alcun parametro e restituisce un valore stringa driver.getCurrentUrl (); |
getPageSource () | • Il comando viene utilizzato per recuperare l'origine della pagina della pagina web a cui l'utente sta attualmente accedendo • Il comando non richiede alcun parametro e restituisce un valore stringa • Il comando può essere utilizzato con varie operazioni sulle stringhe come contains () per accertare il file presenza del valore di stringa specificato risultato booleano = driver.getPageSource (). contains ('String to find'); |
getTitle () | • Il comando viene utilizzato per recuperare il titolo della pagina web su cui l'utente sta attualmente lavorando. Se la pagina web non ha titolo, viene restituita una stringa nulla • Il comando non richiede alcun parametro e restituisce un valore di stringa tagliato Titolo stringa = driver.getTitle (); |
getText () | • Il comando viene utilizzato per recuperare il testo interno dell'elemento web specificato • Il comando non richiede alcun parametro e restituisce un valore stringa • È anche uno dei comandi ampiamente utilizzati per la verifica di messaggi, etichette, errori, ecc. Visualizzati sulle pagine web. String Text = driver.findElement (By.id ('Text')). GetText (); |
getWindowHandle () | • Il comando viene utilizzato per affrontare la situazione in cui abbiamo più di una finestra da gestire. • Il comando ci aiuta a passare alla finestra appena aperta ed esegue le azioni sulla nuova finestra. L'utente può anche tornare alla finestra precedente se lo desidera. private String winHandleBefore; winHandleBefore = driver.getWindowHandle (); driver.switchTo (). window (winHandleBefore); |
getWindowHandles () | • Il comando è simile a quello di “getWindowHandle ()” con la sottile differenza che aiuta a gestire più finestre, cioè quando abbiamo a che fare con più di 2 finestre. |
Di seguito è riportato lo snippet di codice per 'getWindowHandles ()':
public void explicitWaitForWinHandle(final WebDriver dvr, int timeOut, final boolean close) throws WeblivException { try { Wait wait = new WebDriverWait(dvr, timeOut); ExpectedCondition condition = new ExpectedCondition() { @Override public Boolean apply(WebDriver d) { int winHandleNum = d.getWindowHandles().size(); if (winHandleNum > 1) { // Switch to new window opened for (String winHandle : d.getWindowHandles()) { dvr.switchTo().window(winHandle); // Close the delete window as it is not needed if (close && dvr.getTitle().equals('Demo Delete Window')) { dvr.findElement(By.name('ok')).click(); } } return true; } return false; } };
# 2) Individuazione dei collegamenti tramite linkText () e partialLinkText ()
Accediamo a 'google.com' e 'abodeqa.com' utilizzando linkText () e partialLinText () metodi di WebDriver.
È possibile accedere ai collegamenti sopra menzionati utilizzando i seguenti comandi:
conducente .findElement (By.linkText ( 'Google' )).clic();
conducente .findElement (By.linkText ( AbodeQA )).clic();
Il comando trova l'elemento utilizzando il testo del collegamento e quindi fare clic su quell'elemento e quindi l'utente verrà reindirizzato alla pagina corrispondente.
È possibile accedere ai collegamenti sopra menzionati anche utilizzando i seguenti comandi:
conducente .findElement (By.partialLinkText ( 'Gelatina' )).clic();
conducente .findElement (By.partialLinkText ( 'dimora' )).clic();
I due comandi precedenti trovano gli elementi in base alla sottostringa del collegamento fornito tra parentesi e quindi partialLinkText () trova l'elemento web con la sottostringa specificata e quindi fa clic su di esso.
# 3) Selezione di più elementi in un menu a discesa
Esistono principalmente due tipi di menu a discesa:
- Menu a discesa a selezione singola : Un menu a discesa che consente di selezionare un solo valore alla volta.
- Menu a discesa a selezione multipla : Un menu a discesa che consente di selezionare più valori contemporaneamente.
Considera il codice HTML di seguito per un menu a discesa che può selezionare più valori contemporaneamente.
Red Green Yellow Grey
Lo snippet di codice seguente illustra le selezioni multiple in un menu a discesa.
// select the multiple values from a dropdown Select selectByValue = new Select(driver.findElement(By.id('SelectID_One'))); selectByValue.selectByValue('greenvalue'); selectByValue.selectByVisibleText('Red'); selectByValue.selectByIndex(2);
# 4) Invio di un modulo
La maggior parte o quasi tutti i siti Web hanno moduli che devono essere compilati e inviati durante il test di un'applicazione Web. L'utente può imbattersi in diversi tipi di moduli come modulo di accesso, modulo di registrazione, modulo di caricamento file, modulo di creazione del profilo ecc.
In WebDriver, un utente viene sfruttato con un metodo creato appositamente per inviare un modulo. L'utente può anche utilizzare il metodo di clic per fare clic sul pulsante di invio come sostituto del pulsante di invio.
Controlla lo snippet di codice di seguito rispetto al modulo 'nuovo utente' sopra:
// enter a valid username driver.findElement(By. id ('username')).sendKeys('name'); // enter a valid email address driver.findElement(By. id ('email')).sendKeys('name@abc.com'); // enter a valid password driver.findElement(By. id ('password')).sendKeys('namepass'); // re-enter the password driver.findElement(By. id ('passwordConf')).sendKeys('namepass'); // submit the form driver.findElement(By. id ('submit')).submit();
Pertanto, non appena il controllo del programma trova il metodo submit, individua l'elemento e attiva il Invia() metodo sull'elemento web trovato.
# 5) Gestione degli iframe
Durante l'automazione delle applicazioni web, potrebbero esserci situazioni in cui ci viene richiesto di gestire più frame in una finestra. Pertanto, lo sviluppatore dello script di test è tenuto a passare avanti e indietro tra vari frame o iframe per quella questione di fatto.
Un acronimo inline frame come iframe viene utilizzato per inserire un altro documento all'interno del documento HTML corrente o semplicemente una pagina Web in un'altra pagina Web abilitando la nidificazione.
Considera il seguente codice HTML con iframe all'interno della pagina web:
Software Testing Help - iframe session
Il codice HTML sopra mostra la presenza di un iframe incorporato in un altro iframe. Pertanto, per poter accedere all'iframe secondario, un utente deve prima passare all'iframe principale. Dopo aver eseguito l'operazione richiesta, a un utente potrebbe essere richiesto di tornare all'iframe principale per gestire l'altro elemento della pagina web.
È impossibile se un utente tenta di accedere direttamente all'iframe secondario senza prima passare all'iframe principale.
Seleziona iframe per ID
conducente .switchTo (). frame ( ' ID del telaio ' );
Individuazione dell'iframe utilizzando tagName
Durante la ricerca di un iframe, l'utente potrebbe incontrare dei problemi se l'iframe non viene attribuito con proprietà standard. Diventa un processo complesso individuare il frame e passare ad esso. Per risolvere la situazione, un utente viene sfruttato per individuare un iframe utilizzando un metodo tagName simile al modo in cui troviamo qualsiasi altro elemento web in WebDriver.
driver.switchTo (). frame (driver.findElements (By.tagName ('iframe'). get (0));
Il comando precedente individua il primo elemento web con il tagName specificato e passa a quell'iframe. 'Get (0) viene utilizzato per individuare l'iframe con il valore di indice.' Pertanto, in linea con il nostro codice HTML, la sintassi del codice precedente porterebbe il controllo del programma a passare a 'ParentFrame'.
Individuazione dell'iframe utilizzando l'indice:
a) frame (indice)
driver.switchTo (). frame (0);
b) frame (nome del frame)
driver.switchTo (). frame ('nome del frame');
c) frame (elemento WebElement)
Seleziona Finestra principale
driver.switchTo (). defaultContent ();
Il comando precedente riporta l'utente alla finestra originale, ovvero fuori da entrambi gli iframe.
# 6) metodi close () e quit ()
Esistono due tipi di comandi in WebDriver per chiudere l'istanza del browser web.
a) chiudi () : Il metodo close () di WebDriver chiude la finestra del browser web su cui l'utente sta attualmente lavorando oppure possiamo anche dire la finestra a cui il WebDriver accede attualmente. Il comando non richiede alcun parametro né restituisce alcun valore.
b) quit () : A differenza del metodo close (), il metodo quit () chiude tutte le finestre che il programma ha aperto. Come il metodo close (), il comando non richiede alcun parametro né restituisce alcun valore.
Fare riferimento agli snippet di codice seguenti:
conducente .vicino(); // chiude solo una singola finestra a cui attualmente accede l'istanza WebDriver
conducente .smettere(); // chiude tutte le finestre aperte dall'istanza WebDriver
# 7) Gestione delle eccezioni
Le eccezioni sono le condizioni o le situazioni che interrompono inaspettatamente l'esecuzione del programma.
Le ragioni di tali condizioni possono essere:
- Errori introdotti dall'utente
- Errori generati dal programmatore
- Errori generati da risorse fisiche
Pertanto, per affrontare queste condizioni impreviste, è stata concettualizzata la gestione delle eccezioni.
Per quanto riguarda il codice Java che implementiamo durante l'automazione di un'applicazione web, può essere racchiuso in un blocco che è in grado di fornire un meccanismo di gestione contro le condizioni errate.
Catturare un'eccezione
Per catturare un'eccezione, utilizziamo il blocco di codice sottostante
try{ // Protected block // implement java code for automation } catch (ExceptionName e) { // catch block - Catches the exceptions generated in try block without halting the program execution }
Se si verifica un'eccezione nel blocco try / protected block, i controlli di esecuzione verificano la presenza di un blocco catch per il tipo di eccezione corrispondente e gli passano l'eccezione senza interrompere l'esecuzione del programma.
Blocchi multipli di cattura
try{ //Protected block } catch (ExceptionType1 e) { // catch block } catch (ExceptionType2 e) { // catch block } catch (ExceptionType3 e) { // catch block }
Nel codice precedente, è probabile che venga rilevata un'eccezione nel primo blocco catch se il tipo di eccezione corrisponde. Se il tipo di eccezione non corrisponde, l'eccezione viene passata al secondo blocco catch e al terzo blocco catch e così via fino a quando non vengono visitati tutti i blocchi catch.
Condizioni di WebDriver e gestione delle eccezioni
Quando aspiriamo a verificare la presenza di qualsiasi elemento sulla pagina web utilizzando vari comandi condizionali di WebDriver, WebDriver presume che l'elemento web sia presente sulla pagina web. Se l'elemento Web non è presente nella pagina Web, i comandi condizionali generano un'eccezione 'NoSuchElementPresentException'. Pertanto, per evitare che tali eccezioni interrompano l'esecuzione del programma, utilizziamo meccanismi di gestione delle eccezioni. Fare riferimento allo snippet di codice di seguito:
WebElement saveButton = driver.findElement(By.id('Save')); try{ if(saveButton.isDisplayed()){ saveButton.click(); } } catch(NoSuchElementException e){ e.printStackTrace(); }
Elenco dei 25 comandi ed esempi di WebDriver più popolari
Di seguito è riportato l'elenco dei primi 25 comandi Webdriver utilizzati di routine che ogni Automation Tester deve conoscere.
Esaminiamo questi comandi uno per uno in dettaglio.
Ulteriore lettura => Tutorial Selenium WebDriver
# 1) ottieni ()
Comando utilizzando get () per aprire un URL nel browser corrente.
Il comando seguente aprirà l'URL specificato, 'https://www.softwaretestinghelp.com' nel browser.
Sintassi:
driver.get('https://www.softwaretestinghelp.com');
Spiegazione:
- Accedi all'URL https://www.softwaretestinghelp.com
# 2) getCurrentUrl ()
Comando utilizzando getCurrentUrl () per verificare se l'URL è corretto.
Il comando seguente ottiene l'URL corrente nel formato stringa.
Sintassi:
funzione time () c ++
driver.getCurrentUrl();
Di solito usiamo questo metodo nei comandi per verificare se siamo passati alla pagina giusta come previsto. Per questo, dobbiamo usare Assert come mostrato di seguito Esempio .
Sintassi:
Assert.assertEquals(expectedUrl, driver.getCurrentUrl());
Dove previstoUrl è l'URL previsto nel formato stringa.
Spiegazione:
- Controlla e verifica che l'URL caricato rimanga lo stesso e che sia caricata la pagina corretta.
# 3) trova elemento (per, per) e fai clic su ()
findElement (By, by) e fare clic su () per fare clic su qualsiasi elemento della pagina web.
Il metodo findElement (By, by) cerca e individua il primo elemento nella pagina corrente, che corrisponde ai criteri forniti come parametro. Questo metodo viene solitamente utilizzato nei comandi per simulare azioni dell'utente come clic, invio, digitazione ecc.
Il comando seguente cerca e individua il primo elemento nella pagina web con ID 'submit1' e fa clic su di esso se non è coperto.
Sintassi:
driver.findElement(By.id('submit1')).click();
L'elemento può essere localizzato utilizzando ID , Nome , Classe Nome , Nome tag , Testo del collegamento e Testo collegamento parziale , Selettore CSS e X Path .
Spiegazione:
- Cerca il pulsante Invia richiesto.
- Fare clic sul pulsante.
Il comando seguente seleziona un elemento dalla casella di riepilogo.
Sintassi:
WebElement roleDropdown = driver.findElement(By.id('name1'); roleDropdown.click();
Spiegazione:
- Cerca e individua l'elemento dell'elenco in base all'ID 'nome1'.
- Fare clic su quell'elemento.
# 4) isEnabled ()
isEnabled () per verificare se l'elemento è abilitato o disabilitato nel Selenium WebDriver.
Per verificare se un particolare elemento è abilitato in una pagina web, utilizziamo il metodo isEnabled ().
Sintassi:
boolean textBox = driver.findElement(By.xpath('//input(@name='textbox1')')).isEnabled();
Spiegazione:
- Trova l'elemento nella pagina web in base a xpath e controlla se l'elemento è abilitato.
# 5) findElement (By, by) con sendKeys ()
findElement (By, by) con sendKeys () da digitare nei campi del modulo.
Verifiche di convalida dei moduli immettendo i diversi input dell'utente che sono spesso richiesti nei test di automazione. Usiamo findElement (By, by) per individuare i campi e sendKeys () per digitare del contenuto in un campo modificabile.
Il comando seguente utilizza il Name locator per trovare il campo del modulo e digita 'Aaron' in esso.
Sintassi:
driver.findElement(By.name('name')).sendkeys('Aaron');
Spiegazione:
- Cerca il campo del nome richiesto nel modulo.
- Inserisci il valore 'Aaron' in esso.
# 6) findElement (By, by) con getText ()
findElement (By, by) con getText () per memorizzare il valore dell'elemento web mirato.
GetText () è un metodo che ti fornisce il testo interno dell'elemento web. Ottieni testo è il testo all'interno dei tag HTML.
Il codice seguente trova l'elemento con tagName 'select' e ottiene il testo all'interno del tag e lo memorizza in un menu a discesa variabile. Ora il menu a discesa String può essere utilizzato per ulteriori azioni all'interno del programma.
Sintassi:
String dropDown = driver.findElement(By.tagName('dropdown1')).getText();
Spiegazione:
- Cerca il campo obbligatorio nel modulo con tagName 'dropdown1'.
- Prendi il testo all'interno del suo tag HTML.
- Memorizza il testo nell'oggetto String 'DropDown'.
# 7) Invia ()
Invia () per inviare un modulo web.
Il metodo click () di cui abbiamo discusso in precedenza può essere utilizzato per fare clic su qualsiasi collegamento o pulsante. Submit () è un'alternativa migliore a click () se l'elemento su cui fare clic è un pulsante di invio. Il pulsante di invio si trova all'interno del tag 'form' HTML e il tipo di pulsante è 'invia' (non 'pulsante').
Il submit () semplifica la vita trovando automaticamente il pulsante e il metodo che può essere aggiunto a qualsiasi altro campo come nome o indirizzo email. In caso di clic, dobbiamo utilizzare il metodo findElement (By, by) e specificare i localizzatori corretti.
In alcuni scenari in cui l'azione viene eseguita tramite elementi diversi da un pulsante, submit () funziona e fai clic su () no.
Sintassi:
driver.findElement(By.xpath('//input(@name='comments')')).submit();
Spiegazione:
- Trova l'elemento nel percorso x specificato con il nome 'commenti'.
- Invia il modulo.
# 8) findElements (di, di)
findElements (By, by) per ottenere l'elenco degli elementi web.
A volte potremmo voler stampare o eseguire un'azione su un elenco di elementi web come link o campi di input in una pagina web. In tal caso, usiamo findElements (By, by).
Sintassi:
List allChoices = dropDown.findElements(By.xpath('.//fruitoption'));
Spiegazione:
- Un elenco di tutti gli elementi web con xpath specificato è memorizzato nell'elenco webelement allChoices.
# 9) findElements (By, by) with size ()
findElements (By, by) con size () per verificare se un elemento è presente.
findElements (By, by) può essere utilizzato per verificare se un elemento è effettivamente presente nella pagina web.
Il comando seguente viene utilizzato se vogliamo verificare che un elemento con un particolare localizzatore sia presente in una pagina web. Se size ()! = 0, l'elemento è presente.
Sintassi:
Boolean checkIfElementPresent= driver.findElements(By.xpath('//input(@id='checkbox2')')).size()!= 0;
Spiegazione:
- L'elemento Trova è specificato in xpath con id 'checkbox2'.
- A seconda della dimensione dell'elenco di elementi, il valore booleano checkIfElementPresent verrà impostato su TRUE o FALSE.
# 10) pageLoadTimeout (tempo, unità)
pageLoadTimeout (time, unit) per impostare il tempo di caricamento di una pagina.
A volte, a causa di problemi del server o ritardi di rete, il caricamento di una pagina potrebbe richiedere più tempo del solito. Ciò potrebbe generare un errore nel programma. Per evitare ciò, impostiamo un tempo di attesa e pageLoadTimeout () è uno di questi metodi. Questo di solito segue un comando get ().
Sintassi:
driver.manage().timeouts().pageLoadTimeout(500, SECONDS);
Spiegazione:
- Attendi 500 secondi per il caricamento di una pagina.
# 11) implicitlyWait ()
implicitlyWait () per impostare un tempo di attesa prima di cercare e individuare un elemento web.
Cosa succede se il Webdriver cerca di individuare un elemento prima che la pagina web venga caricata e l'elemento venga visualizzato? NoSuchElementExeption verrà lanciato. Per evitare ciò, possiamo aggiungere un comando per attendere implicitamente un certo periodo di tempo prima di individuare l'elemento.
Sintassi:
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
Spiegazione:
- Attendere implicitamente 1000 secondi prima di eseguire la riga successiva nel codice.
# 12) fino a () e visibilitàOfElementLocated ()
untill () da WebdriverWait e visibilitàOfElementLocated () da ExpectedConditions per attendere esplicitamente fino a quando un elemento è visibile nella pagina web.
Gestire i casi in cui un elemento impiega troppo tempo per essere visibile sulla pagina Web del software, l'applicazione dell'attesa implicita diventa complicato. In questo caso, possiamo scrivere un commento per attendere che l'elemento venga visualizzato nella pagina web. Questo comando utilizza una combinazione del metodo until () dalla classe WebdriverWait e dal metodo visibilitàOfElementLocated () dalla classe ExpectedConditions.
Sintassi:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated (By.xpath('//input(@id=’name’)')));
Spiegazione:
- La prima riga dice quanto tempo aspettare che è di 10 secondi.
- La seconda condizione dice una condizione attesa da attendere. Ecco un elemento con id’name ’nel citato xpath.
# 13) untill () e alertIsPresent ()
untill () da WebdriverWait e alertIsPresent () da ExpectedConditions per attendere esplicitamente finché non viene visualizzato un avviso.
In alcuni scenari, dobbiamo attendere gli avvisi per continuare il test. In questo caso, utilizziamo un comando che utilizza il metodo until () dalla classe WebdriverWait e il metodo alertIsPresent () dalla classe ExpectedConditions.
Si prega di vedere il comando di seguito:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.alertIsPresent() );
Spiegazione:
- La prima riga indica quanto tempo aspettare, ovvero 10 secondi.
- La seconda condizione dice una condizione attesa da attendere. Ecco un pop-up di avviso.
# 14) getTitle ()
getTitle () per ottenere il titolo della pagina nel webdriver Selenium.
Sintassi:
String title = driver.getTitle(); System.out.println(title);
Di solito viene utilizzato per stampare il titolo nei log di output.
Spiegazione:
- Ottieni il titolo della pagina web e memorizzalo nel titolo dell'oggetto String.
- Stampa il valore memorizzato nel titolo nei log di output.
# 15) Seleziona
Seleziona la classe per selezionare e deselezionare i valori dal menu a discesa in Selenium WebDriver.
Spesso abbiamo scenari relativi a menu a discesa. I metodi della classe Select vengono utilizzati per gestire questo. Possiamo usare selectByVisibleText (), selectByValue () o selectByIndex () in base allo scenario.
Sintassi:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.selectByVisibleText('Apple');
Spiegazione:
- Trova il menu a discesa utilizzando il suo ID 'seleziona'.
- Seleziona il testo visibile 'Apple' dal menu a discesa.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.selectByValue('Apple')
Spiegazione:
- Trova il menu a discesa utilizzando il suo ID 'seleziona'.
- Seleziona il testo con il valore 'Apple' dal menu a discesa.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.selectByIndex(1);
Spiegazione:
- Trova il menu a discesa utilizzando il suo ID 'seleziona'.
- Seleziona l'elemento a discesa con il valore di indice '1' dal menu a discesa (Secondo elemento).
In modo simile alla selezione, possiamo deselezionare i valori dal menu a discesa utilizzando comandi simili.
Si prega di controllare i comandi:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.deselectByVisibleText('Apple');
Spiegazione:
- Trova il menu a discesa utilizzando il suo ID 'seleziona'.
- Deseleziona il testo visibile 'Apple' dal menu a discesa.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.deselectByValue('Apple');
Spiegazione:
- Trova il menu a discesa utilizzando il suo ID 'seleziona'.
- Deseleziona il testo con il valore 'Apple' dal menu a discesa.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.deselectByIndex(1);
Spiegazione:
- Trova il menu a discesa utilizzando il suo ID 'seleziona'.
- Deseleziona l'elemento a discesa con il valore di indice '1' dal menu a discesa (Secondo elemento).
navigate () per navigare tra gli URL.
Vediamo spesso scenari in cui potremmo voler navigare dall'URL di destinazione e poi tornare indietro o avanti. In questi casi, invece di usare get (), possiamo usare navigate (). In Navigate possiamo usare i metodi back () e forward () senza specificare gli URL.
Sintassi:
driver.navigate().to('https://www.softwaretestinghelp.com'); driver.navigate().back(); driver.navigate().forward();
Spiegazione:
- Accedi a https://www.softwaretestinghelp.com
- Torna indietro.
- Vai avanti.
# 17) getScreenshotAs ()
getScreenshotAs () per acquisire l'intera schermata della pagina in Selenium WebDriver.
Questo è spesso richiesto per salvare i dettagli del lavoro o talvolta per controllare manualmente gli output. Il comando seguente viene utilizzato per acquisire uno screenshot e salvare in un file di output.
Sintassi:
File shot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(shot, new File('D:\ shot1.jpg'));
Spiegazione:
- Fai uno screenshot e salva il file in Object Shot.
- Salvare il file nell'unità D come shot1.png.
# 18) moveToElement ()
moveToElement () dalla classe Actions per simulare l'effetto al passaggio del mouse.
Ci sono scenari in cui dobbiamo passare il mouse su elementi web come sopra il menu per vedere i sottomenu, i collegamenti per vedere i cambiamenti di colore, ecc. In questi casi, usiamo la classe Actions. Dai un'occhiata alla sintassi seguente per la classe Action.
Sintassi:
Actions actions = new Actions(driver); WebElement mouseHover = driver.findElement(By.xpath('//div(@id='mainmenu1')/div')); actions.moveToElement(mouseHover); actions.perform();
Spiegazione
- Trova e individua l'elemento web con ID div 'mainmenu1'.
- Spostare il puntatore del mouse sull'elemento.
# 19) dragAndDrop ()
dragAndDrop () dalla classe Actions per trascinare un elemento e rilasciarlo su un altro elemento.
In alcuni scenari, potremmo voler trascinare elementi. Per esempio, trascina un'immagine sullo stage. In questo caso, possiamo usare la classe Actions.
Nel metodo dragAndDrop, passiamo i due parametri, Source locator, l'elemento che vogliamo trascinare e Destination locator, l'elemento su cui vogliamo rilasciare.
Sintassi:
WebElement sourceLocator = driver.findElement(By.xpath('//*(@id='image1')/a')); WebElement destinationLocator = driver.findElement(By.xpath('//*(@id='stage')/li')); Actions actions=new Actions(driver); actions.dragAndDrop(sourceLocator, destinationLocator).build().perform();
Spiegazione:
- Trova e individua l'elemento web di origine.
- Trova e individua l'elemento web di destinazione.
- Trascina e rilascia l'elemento di origine sull'elemento di destinazione.
# 20) switchTo () e accept (), dismiss () e sendKeys ()
switchTo () e accept (), dismiss () e sendKeys () dalla classe Alert per passare agli avvisi popup e gestirli.
Per passare ad avvisi, popup e gestirli, utilizziamo una combinazione di passa a() e accetta (), ignora () metodi dalla classe Alert.
Sintassi:
Alert alert = driver.switchTo().alert(); alert.sendKeys('This Is Softwaretestinghelp'); alert.accept()
Spiegazione:
- Passa alla finestra di avviso.
- Digita 'Questo è un aiuto per il test del software' all'interno dell'avviso.
- Accetta l'avviso e chiudilo.
alert.dismiss () può essere utilizzato per ignorare l'avviso.
# 21) getWindowHandle () e getWindowHandles ()
getWindowHandle () e getWindowHandles () per gestire più finestre in Selenium WebDriver.
domande di intervista per sviluppatori .net
Ci sono molti casi in cui le applicazioni web hanno molti frame o finestre.
Si tratta principalmente di pubblicità o finestre popup di informazioni. Possiamo gestire più finestre utilizzando i gestori di Windows. Webdriver memorizza un ID finestra univoco per ogni finestra. Usiamo questo ID per gestirli.
Sintassi:
String handle= driver.getWindowHandle(); Set handle= driver.getWindowHandles();
I comandi di cui sopra sono usati per ottenere gli id delle finestre della finestra corrente e di tutte le finestre rispettivamente. Si prega di vedere il ciclo qui sotto per vedere come possiamo passare a ciascuna finestra attraverso il ciclo for.
for (String handle : driver.getWindowHandles()){ driver.switchTo().window(handle); }
Spiegazione:
- Per ogni id di handle di finestra da driver.getWindowHandles (), passa a quell'id di finestra.
# 22) getConnection ()
getConnection () da DriverManager per avviare la connessione al database.
Per avviare una connessione al database, usiamo getConnection dalla classe DriverManager.
Sintassi:
DriverManager.getConnection(URL, 'username', 'password' )
Spiegazione:
- Connettiti al database tramite URL e credenziali.
#23) POI
POI da leggere dai file excel.
Nei test basati sui dati, spesso salviamo gli input in un file excel e lo leggiamo. Per fare ciò in WebDriver, importiamo il pacchetto POI e quindi utilizziamo il comando seguente.
Sintassi:
Workbook workbook = WorkbookFactory.create(new FileInputStream(file)); Sheet sheet = workbook.getSheetAt(0);
Spiegazione:
- Crea un file di lettura.
- Leggi il file.
# 24) assertEquals (), assertNotEquals (), assertTrue () e assertFalse ()
Asserisce utilizzando assertEquals (), assertNotEquals (), assertTrue () e assertFalse () per confrontare i risultati.
Le asserzioni vengono utilizzate per confrontare i risultati attesi ed effettivi. Il superamento o il fallimento di un test viene solitamente deciso in base al risultato di affermazioni. Diversi tipi di asserzione vengono utilizzati nell'automazione.
Sintassi:
Assert.assertEquals(message, “This text”); Assert.assertNotEquals(message, “This text”); Assert.assertTrue(result<0); Assert.assertFalse(result<0);
Spiegazione:
- Nel primo comando, ogni volta che i valori attesi e effettivi coincidono, l'asserzione viene eseguita senza eccezioni. cioè, se il messaggio è 'Questo testo', l'asserzione viene accettata.
- Nel secondo comando, ogni volta che i valori attesi ed effettivi coincidono, l'asserzione fallisce con un'eccezione. cioè, se il messaggio è 'Questo testo', l'asserzione fallisce.
- Nel terzo comando, se la condizione passa, l'asserzione passa. cioè, se risultato<0, then the assertion passes.
- Nel quarto comando, se la condizione passa, l'asserzione fallisce. cioè, se risultato<0, then the assertion fails.
# 25) chiudi () ed esci ()
close () e quit () per chiudere finestre e istanze del driver.
Questi comandi vengono utilizzati alla fine di ogni programma di automazione.
Sintassi:
driver.close() driver.quit()
Spiegazione:
Il primo comando chiude la finestra corrente.
Il secondo comando esce da questa istanza del driver, chiudendo ogni finestra associata, che viene aperta.
Conclusione
In questo tutorial, abbiamo introdotto vari comandi di WebDriver usati comunemente ed eccessivamente. Abbiamo cercato di spiegare i comandi con esempi adatti e frammenti di codice.
Ho fatto del mio meglio per spiegare i comandi WebDriver più popolari che usiamo abitualmente nel nostro lavoro quotidiano. Questi comandi ti permetteranno di lavorare facilmente con Selenium.
Spero sia stato interessante e ben informato per te.
Sei un Automation Tester che ha provato uno dei comandi precedenti? O abbiamo perso alcuni comandi che stai utilizzando nell'elenco sopra?
Prossimo tutorial n. 18 : Nel prossimo tutorial, discuteremo di Tabelle web, frame ed elementi dinamici che sono una parte essenziale di qualsiasi progetto web. Copriremo anche il file la gestione delle eccezioni l'argomento importante in maggiori dettagli in uno dei prossimi tutorial sul selenio.
Lettura consigliata
- Esercitazione sul selenio di cetriolo: integrazione con WebDriver di selenio Java di cetriolo
- Introduzione a Selenium WebDriver - Selenium Tutorial # 8
- Come eseguire Selenium WebDriver in diversi browser popolari
- Implementazione del nostro primo script WebDriver - Selenium WebDriver Tutorial # 10
- Domande frequenti sul selenio
- Come gestire avvisi / popup in Selenium WebDriver - Selenium Tutorial # 16
- Tutorial GeckoDriver Selenium: come utilizzare GeckoDriver nei progetti Selenium
- Attesa implicita ed esplicita in Selenium WebDriver (tipi di attese al selenio)