Muisklik & Keyboard Event: Action Class in Selenium Webdriver

Inhoudsopgave:

Anonim

In deze tutorial zullen we leren omgaan met toetsenbord- en muisgebeurtenis in Selenium Webdriver

Actieklasse in selenium

Action Class in Selenium is een ingebouwde functie van het selenium voor het afhandelen van toetsenbord- en muisgebeurtenissen. Het bevat verschillende bewerkingen, zoals meerdere gebeurtenissen klikken met de Control-toets, gebeurtenissen slepen en neerzetten en nog veel meer. Deze bewerkingen van de actieklasse worden uitgevoerd met behulp van de geavanceerde gebruikersinteractie-API in Selenium Webdriver.

Omgaan met toetsenbord- en muisgebeurtenissen

Het afhandelen van speciale toetsenbord- en muisgebeurtenissen wordt gedaan met behulp van de API voor geavanceerde gebruikersinteracties . Het bevat de acties en de actie klassen die nodig zijn bij het uitvoeren van deze gebeurtenissen. Hieronder volgen de meest gebruikte toetsenbord- en muisgebeurtenissen die worden geleverd door de klasse Actions.

Methode Omschrijving
Klik en houd vast() Klikken (zonder los te laten) op de huidige muislocatie.
contextClick () Voert een context-klik uit op de huidige muislocatie. (Rechter muisactie)
Dubbelklik() Voert een dubbelklik uit op de huidige muislocatie.
dragAndDrop (bron, doel) Voert click-and-hold uit op de locatie van het bronelement, beweegt naar de locatie van het doelelement en laat vervolgens de muis los. Parameters: source- element om knop naar beneden te emuleren at.target- element om naar te verplaatsen en de muis op los te laten.
dragAndDropBy (bron, x-offset, y-offset) Voert klikken en vasthouden uit op de locatie van het bronelement, beweegt met een bepaalde verschuiving en laat vervolgens de muis los. Parameters : source- element om knop naar beneden te emuleren at. XOffset- offset horizontale verplaatsing. YOffset- offset verticale verplaatsing.
keyDown (modifier_key) Voert een wijzigingstoets uit. Laat de modificatietoets niet los - bij volgende interacties kan worden aangenomen dat deze ingedrukt wordt gehouden. Parameters : modifier_key - een van de modificatietoetsen (Keys.ALT, Keys.SHIFT of Keys.CONTROL)
keyUp (modificator _key) Voert een sleutelvrijgave uit. Parameters : modifier_key - een van de modificatietoetsen (Keys.ALT, Keys.SHIFT of Keys.CONTROL)
moveByOffset (x-offset, y-offset) Verplaatst de muis vanaf zijn huidige positie (of 0,0) met de opgegeven offset. Parameters : x-offset- horizontale offset. Een negatieve waarde betekent het verplaatsen van de muis naar links. Y-offset- verticale offset. Een negatieve waarde betekent dat de muis omlaag beweegt.
moveToElement (toElement) Verplaatst de muis naar het midden van het element. Parameters : toElement-element om naar te verplaatsen.
vrijlating() Laat de ingedrukte linkermuisknop los op de huidige muislocatie
sendKeys (onElement, charsequence) Stuurt een reeks toetsaanslagen naar het element. Parameters : onElement - element dat de toetsaanslagen ontvangt, meestal een tekstveld, tekenreeks - elke tekenreekswaarde die de reeks van te verzenden toetsaanslagen vertegenwoordigt

In het volgende voorbeeld zullen we de methode moveToElement () gebruiken om met de muis over de tabelrijen van een Mercury Tours te bewegen. Zie onderstaand voorbeeld.

De cel die hierboven wordt weergegeven, is een onderdeel van een -element. Als de muisaanwijzer niet zweeft, is de kleur # FFC455 (oranje). Na het zweven wordt de kleur van de cel transparant. Het wordt dezelfde kleur als de blauwe achtergrond van de hele oranje tafel.

Stap 1: Importeer de Actions en Action- klassen.

Stap 2: Start een nieuw Actions-object.

Stap 3: Start een actie met behulp van het Actions-object in stap 2.

In dit geval gaan we de methode moveToElement () gebruiken omdat we simpelweg met de muis over de "Home" -link gaan. De methode build () is altijd de laatste methode die wordt gebruikt, zodat alle vermelde acties in één stap worden gecompileerd.

Stap 4: Gebruik de methode perform () bij het uitvoeren van het Action-object dat we in stap 3 hebben ontworpen.

Hieronder staat de volledige WebDriver-code om de achtergrondkleur van het -element voor en na de muisaanwijzer te controleren.

pakket nieuwproject;importeer org.openqa.selenium. *;importeer org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.interactions.Action;import org.openqa.selenium.interactions.Actions;openbare klasse PG7 {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");WebDriver-stuurprogramma = nieuwe FirefoxDriver ();driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Home"));WebElement td_Home = stuurprogramma.findElement (door.xpath ("// html / body / div"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr"));Actions builder = nieuwe Actions (driver);Actie mouseOverHome = builder.moveToElement (link_Home).bouwen();String bgColor = td_Home.getCssValue ("achtergrondkleur");System.out.println ("Voor hover: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("achtergrondkleur");System.out.println ("Na hover: + bgColor);driver.close ();​​

De output hieronder geeft duidelijk aan dat de achtergrondkleur transparant werd na de mouse-over.

Een reeks meerdere acties opbouwen

U kunt een reeks acties bouwen met behulp van de klassen Actie en Acties . Vergeet niet om de reeks af te sluiten met de methode build (). Beschouw de onderstaande voorbeeldcode.

public static void main (String [] args) {String baseUrl = "http://www.facebook.com/";WebDriver-stuurprogramma = nieuwe FirefoxDriver ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("e-mail"));Actions builder = nieuwe Actions (driver);Actie seriesOfActions = builder.moveToElement (txtUsername).Klik().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "hallo").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().bouwen();seriesOfActions.perform ();​

Overzicht

  • Het afhandelen van speciale toetsenbord- en muisgebeurtenissen wordt gedaan met behulp van de AdvancedUserInteractions-API.
  • Veelgebruikte trefwoord- en muisgebeurtenissen zijn doubleClick (), keyUp, dragAndDropBy, contextClick & sendKeys.