Classe azioni critiche nella guida selenio-Absolute 2021

Discuteremo e impareremo l'utilizzo esaustivo della classe Actions in Selenium in diverse operazioni Web. La classe Actions in Selenium è ampiamente utilizzata per eseguire varie operazioni web come il movimento del mouse e della tastiera, che sono azioni avanzate del browser web.

le azioni del mouse

Azioni da tastiera

Classe di azioni in selenio

Cos'è la classe di azioni nel selenio: 

Classe di azioni in selenio
Classe di azioni in selenio

La classe Actions è una classe di Selenium Bundle Api del pacchetto org.openqa.selenium.interactions per gestire le interazioni Web critiche e avanzate con gli utenti tramite l'automazione del browser. Fornisce agli utenti una maniglia per eseguire varie azioni del mouse e della tastiera tramite i diversi metodi sopra menzionati.  

Classe di azioni in selenio
Classe di azioni in selenio

Discuteremo qui tutte le interazioni Web tramite la classe Actions in Selenium, per iniziare Impareremo le interazioni del mouse e ci sposteremo verso le interazioni KeyBoard con la classe Actions in Selenium.

Interazioni con il mouse - Classe di azioni in selenio

Trascina e rilascia nel selenio

Il Drag and Drop in Selenium può essere eseguito in tre diversi approcci con la classe Actions in Selenium: 

Trascina e rilascia in Selenium con Action Class in Selenium tramite il metodo di costruzione: 

Abbiamo bisogno di due webelements per eseguire il Drag and Drop in Selenium come Source WebElement (che deve essere trascinato) e Destination WebElement (dove il WebElement di origine da rilasciare, ovvero il WebElement di destinazione), Il metodo seguente è un metodo personalizzato ( che potresti usare per costruire il tuo Framework WebUtils) che esegue il Drag And Drop in Selenium e questo metodo accetta due argomenti uno è Source WebElement e un altro è Destination WebElement come menzionato in precedenza: 

public void dragAndDrop(Per fonte, Per destinazione) { try { WebElement sourceElement = driver.findElement (source); Elemento di destinazione WebElement = driver.findElement(destinazione); Generatore di azioni = new Actions(driver); Azione dragAndDrop = builder.clickAndHold(sourceElement).moveToElement(destinationElement) .release(destinationElement).build(); dragAndDrop.perform(); BASE_LOGGER.info("Eseguita con successo l'azione Drag and Drop"); } catch (Eccezione e) { Stringa exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Errore riscontrato es: " +exceptionData + "durante l'esecuzione di DragAndDrop"); } }

Per apprendere l'intero concetto sul trascinamento della selezione e ottenere tutti gli approcci per eseguire il trascinamento della selezione in Selenium, fare clic qui.

Clicca e tieni premuto nel selenio 

ClickAndHold è un altro metodo importante della classe Actions (dal pacchetto org.openqa.selenium.interactions) in Selenium a
eseguire prima l'operazione di clic sinistro su qualsiasi elemento web e tenerlo premuto senza rilasciare il mouse.

Questo metodo viene utilizzato principalmente durante l'esecuzione degli scenari di trascinamento, di seguito è riportata l'immagine del codice di esempio: 

Classe di azioni in selenio
fare clic e tenere premuto -Classe di azioni in selenio

MoveToElement in selenio

MoveToElement è un metodo della classe Actions in Selenium per eseguire il movimento su un altro WebElement (Destination Webelement), che questo metodo accetta come rispettivo argomento.

Questo metodo viene utilizzato principalmente durante l'esecuzione degli scenari di trascinamento, di seguito è riportata l'immagine del codice di esempio: 

Sposta su elemento
Sposta in elemento: classe di azioni in selenio

Doppio clic in selenio

Per replicare l'operazione di doppio clic tramite il mouse, dobbiamo eseguire il doppio clic tramite la classe Actions in Selenium e possiamo farlo con l'approccio seguente: 

public void doubleClick(By locator) { try { elemento WebElement = driver.findElement(locator); Actions actions = new Actions(driver); actions.doubleClick(elemento).perform(); BASE_LOGGER.info("Eseguito il doppio Click sull'Elemento: " + locator); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("L'elemento non è allegato al documento della pagina " + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Element " + locator + " non è stato trovato in DOM " + e.getCause().getMessage()); } catch (Eccezione e) { BASE_LOGGER.error("Element " + locator + " non era selezionabile " + e.getCause().getMessage()); } }

Lo snippet di codice sopra è un metodo che fondamentalmente prende un argomento come Locator, cioè il WebElement su cui deve essere eseguito il doppio clic. 

clic contestuale o clic destro del selenio

Per replicare l'operazione di clic contestuale o clic destro tramite il mouse, dobbiamo eseguire il metodo di clic contestuale tramite la classe Actions in Selenium e possiamo farlo con l'approccio seguente: 

public void rightClick (per localizzatore) { try { elemento WebElement = driver.findElement (localizzatore); Actions actions = new Actions(driver); actions.contextClick(elemento).perform(); BASE_LOGGER.info("Eseguito il contesto Clicca sull'Elemento: " + locator); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("L'elemento non è allegato al documento della pagina " + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Element " + locator + " non è stato trovato in DOM " + e.getCause().getMessage()); } catch (Eccezione e) { BASE_LOGGER.error("Element " + locator + " non era selezionabile " + e.getCause().getMessage()); } }

Lo snippet di codice sopra è un metodo che fondamentalmente prende un argomento come Locator, cioè il WebElement su cui deve essere eseguito il doppio clic. 

Pausa nel selenio 

Ogni volta che vogliamo aver introdotto un ritardo di tempo tra diverse azioni, potremmo usare il metodo pause tra le operazioni delle azioni, come diciamo se vogliamo avere alcuni secondi di ritardo tra l'operazione di trascinamento e rilascio, allora possiamo chiamare la pausa ( ) metodo della classe di azioni in selenio nell'approccio seguente: 

public void pauseBetweenActions(Per sorgente,Per destinazione, int timeUnit) { try { WebElement sourceElement = driver.findElement(source); Elemento di destinazione WebElement = driver.findElement(destinazione); Generatore di azioni = new Actions(driver); builder.clickAndHold(sourceElement).moveToElement(destinationElement).pause(timeUnit).release(destinationElement).build().perform(); BASE_LOGGER.info("Eseguita con successo l'azione Drag and Drop"); } catch (Eccezione e) { Stringa exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Errore riscontrato es: " +exceptionData + "durante l'esecuzione di DragAndDrop"); } }

Nel metodo precedente richiede tre argomenti: un WebElement di origine, un altro argomento è l'elemento di destinazione e l'ultimo è per timeUnit, ovvero il ritardo che vogliamo introdurre usando pause () in Selenium.

Passaggio del mouse nel selenio

Mouse Hover nell'operazione Selenium può essere ottenuto utilizzando la classe Actions in Selenium, in pratica, una volta che siamo a fuoco con qualsiasi webElement e da lì, vogliamo passare il cursore del mouse su qualsiasi altro elemento da questa operazione Mouse Hover, e questo WebElement dove vogliamo prendere il nostro cursore del mouse si chiama come Target WebElement. 

Di seguito è riportato lo snippet di codice per lo stesso: 

public void mouseHover (per targetLocator) { try { WebElement targetElement = driver.findElement (targetedLocator); Generatore di azioni = new Actions(driver); builder.moveToElement(targetedElement).build().perform(); BASE_LOGGER.info("Eseguito con successo il passaggio del mouse in azione Selenio"); } catch (Eccezione e) { Stringa exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Errore riscontrato ie : " +exceptionData + " durante l'esecuzione del passaggio del mouse in Selenium "); } }

Per conoscere tutti i Comando webdriver Selenium a cui puoi fare riferimento qui .

Azioni da tastiera - Classe di azioni in selenio

Che cosa sono le azioni della tastiera e dove sono richieste:

Le azioni della tastiera indicano dove le operazioni vengono eseguite direttamente da una tastiera, ad esempio diciamo che stiamo cercando di eseguire Contrl + A insieme o Control + C insieme o eseguendo il tasto Key up o Keydown dalla tastiera mentre interagiamo con WebElements.

Possiamo eseguire diverse interazioni con la tastiera con l'aiuto della classe Actions in Selenium

sendKeys in selenio :

Possiamo eseguire l'operazione sendKeys con l'aiuto della classe Actions in Selenium nel modo seguente:

public void sendKeysWithActionClass (per localizzatore) { try { elemento WebElement = driver.findElement (localizzatore); Actions actions = new Actions(driver); actions.sendKeys("Inserimento dati tastiera"); // Esegui azioni da tastiera premendo Control e c insieme actions.sendKeys(Keys.CONTROL); actions.sendKeys("c"); actions.build().perform(); } catch (Eccezione e) { Stringa exceptionData = e.getCause().getMessage(); } }

KeyUp in selenio :

Allo stesso modo possiamo eseguire operazioni KeyUp con la classe Actions in Selenium nel modo seguente:

    public void keyUpWithActionClass (per localizzatore) { try { elemento WebElement = driver.findElement (localizzatore); Actions actions = new Actions(driver); actions.sendKeys("Inserimento dati tastiera"); // Esegui azioni da tastiera premendo Control e c insieme a keyUp actions.keyUp(Keys.CONTROL); actions.sendKeys("c"); actions.build().perform(); } catch (Eccezione e) { Stringa exceptionData = e.getCause().getMessage(); } }

KeyDown in selenio

Possiamo eseguire l'operazione keyDown con l'aiuto della nuova classe Actions in Selenium nell'approccio seguente:

public void keyDownWithActionClass (per localizzatore) { try { elemento WebElement = driver.findElement (localizzatore); Actions actions = new Actions(driver); actions.sendKeys("Inserimento dati tastiera"); // Esegui le azioni della tastiera premendo Control e V insieme a keyDown actions.keyDown(Keys.CONTROL); actions.sendKeys("v"); actions.build().perform(); } catch (Eccezione e) { Stringa exceptionData = e.getCause().getMessage(); } }

Conclusione: Con questi abbiamo finito qui con la classe Actions in Selenium, nel prossimo tutorial JavascriptExecutor in Selenio in maniera modulare ma esaustiva. Per imparare Completamente il comando Selenio puoi fare riferimento qui anche per prepararti Domande dell'intervista di Critical Selenium a cui puoi fare riferimento qui.

Lascia un tuo commento