Clic del mouse & Evento tastiera: classe di azione in Selenium Webdriver

Sommario:

Anonim

In questo tutorial, impareremo a gestire gli eventi di tastiera e mouse in Selenium Webdriver

Classe di azione in selenio

Action Class in Selenium è una funzionalità integrata fornita dal selenio per la gestione degli eventi della tastiera e del mouse. Comprende varie operazioni come più eventi facendo clic con il tasto Control, trascina e rilascia eventi e molti altri. Queste operazioni dalla classe di azione vengono eseguite utilizzando l'API di interazione utente avanzata in Selenium Webdriver.

Gestione degli eventi di tastiera e mouse

La gestione degli eventi speciali della tastiera e del mouse viene eseguita utilizzando l' API delle interazioni utente avanzate . Contiene le azioni e le classi di azioni necessarie durante l'esecuzione di questi eventi. Di seguito sono riportati gli eventi di tastiera e mouse più comunemente utilizzati forniti dalla classe Actions.

Metodo Descrizione
clickAndHold () Clic (senza rilasciare) nella posizione corrente del mouse.
contextClick () Esegue un clic contestuale nella posizione corrente del mouse. (Azione clic destro del mouse)
doppio click() Esegue un doppio clic nella posizione corrente del mouse.
dragAndDrop (origine, destinazione) Esegue il clic e tieni premuto nella posizione dell'elemento di origine, si sposta nella posizione dell'elemento di destinazione, quindi rilascia il mouse. Parametri: elemento sorgente per emulare il pulsante in basso a. Elemento target per spostarsi e rilasciare il mouse su.
dragAndDropBy (origine, offset x, offset y) Esegue il clic e tieni premuto nella posizione dell'elemento sorgente, si sposta di un dato offset, quindi rilascia il mouse. Parametri : sorgente- elemento per emulare il pulsante in basso a.xOffset- spostamento orizzontale offset.yOffset- spostamento verticale offset.
keyDown (modifier_key) Esegue la pressione di un tasto modificatore. Non rilascia il tasto modificatore - le interazioni successive possono presumere che sia tenuto premuto. Parametri : modifier_key - qualsiasi tasto modificatore (Keys.ALT, Keys.SHIFT o Keys.CONTROL)
keyUp (modificatore _key) Esegue un rilascio dei tasti. Parametri : modifier_key - qualsiasi tasto modificatore (Keys.ALT, Keys.SHIFT o Keys.CONTROL)
moveByOffset (offset x, offset y) Sposta il mouse dalla sua posizione corrente (o 0,0) dell'offset dato. Parametri : x-offset- offset orizzontale. Un valore negativo significa spostare il mouse a sinistra. Y-offset-offset verticale. Un valore negativo significa spostare il mouse verso il basso.
moveToElement (toElement) Sposta il mouse al centro dell'elemento. Parametri : toElement- elemento su cui spostarsi.
pubblicazione() Rilascia il pulsante sinistro del mouse premuto nella posizione corrente del mouse
sendKeys (onElement, charsequence) Invia una serie di sequenze di tasti all'elemento. Parametri : onElement - elemento che riceverà le sequenze di tasti, di solito un campo di testo sequenza di caratteri - qualsiasi valore di stringa che rappresenta la sequenza di sequenze di tasti da inviare

Nell'esempio seguente, utilizzeremo il metodo moveToElement () per passare il mouse sulle righe di una tabella di Mercury Tours. Vedi l'esempio sotto.

La cella mostrata sopra è una parte di un elemento . Se non è in bilico, il suo colore è # FFC455 (arancione). Dopo il passaggio del mouse, il colore della cella diventa trasparente. Diventa lo stesso colore dello sfondo blu dell'intero tavolo arancione.

Fase 1: Importare le azioni e le azione classi.

Passaggio 2: creare un'istanza di un nuovo oggetto Actions.

Passaggio 3: creare un'istanza di un'azione utilizzando l'oggetto Azioni nel passaggio 2.

In questo caso, utilizzeremo il metodo moveToElement () perché passeremo semplicemente con il mouse sul collegamento "Home". Il metodo build () è sempre il metodo finale utilizzato in modo che tutte le azioni elencate vengano compilate in un unico passaggio.

Passaggio 4: utilizzare il metodo perform () durante l'esecuzione dell'oggetto Action che abbiamo progettato nel passaggio 3.

Di seguito è riportato l'intero codice WebDriver per controllare il colore di sfondo dell'elemento prima e dopo il passaggio del mouse.

pacchetto newproject;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.interactions.Action;import org.openqa.selenium.interactions.Actions;public class PG7 {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Driver WebDriver = nuovo FirefoxDriver ();driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Home"));WebElement td_Home = driver.findElement (di.xpath ("// html / body / div"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr"));Generatore di azioni = nuove azioni (driver);Azione mouseOverHome = builder.moveToElement (link_Home).costruire();Stringa bgColor = td_Home.getCssValue ("background-color");System.out.println ("Before hover: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("background-color");System.out.println ("Dopo il passaggio del mouse: + bgColor);driver.close ();}}

L'output seguente indica chiaramente che il colore di sfondo è diventato trasparente dopo il passaggio del mouse.

Costruire una serie di azioni multiple

È possibile creare una serie di azioni utilizzando le classi Action e Actions . Ricorda solo di chiudere la serie con il metodo build (). Considera il codice di esempio riportato di seguito.

public static void main (String [] args) {String baseUrl = "http://www.facebook.com/";Driver WebDriver = nuovo FirefoxDriver ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("email"));Generatore di azioni = nuove azioni (driver);Action seriesOfActions = builder.moveToElement (txtUsername).clic().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "ciao").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().costruire();seriesOfActions.perform ();}

Sommario

  • La gestione di eventi speciali di tastiera e mouse viene eseguita utilizzando l'API AdvancedUserInteractions.
  • Le parole chiave e gli eventi del mouse utilizzati di frequente sono doubleClick (), keyUp, dragAndDropBy, contextClick e sendKeys.