Τάξη δράσης σε Selenium – Κλικ ποντικιού και συμβάντα πληκτρολογίου

Σε αυτό το σεμινάριο, θα μάθουμε να χειριζόμαστε το συμβάν πληκτρολογίου και ποντικιού Selenium Πρόγραμμα οδήγησης Web

Τάξη δράσης σε Selenium

Τάξη δράσης σε Selenium είναι μια ενσωματωμένη δυνατότητα που παρέχεται από το σελήνιο για το χειρισμό συμβάντων με πληκτρολόγιο και ποντίκι. Περιλαμβάνει διάφορες λειτουργίες, όπως πολλαπλά συμβάντα κλικ με πλήκτρο ελέγχου, μεταφορά και απόθεση συμβάντων και πολλά άλλα. Αυτές οι λειτουργίες από την κλάση ενεργειών εκτελούνται χρησιμοποιώντας το προηγμένο API αλληλεπίδρασης χρήστη στο Selenium Webdriver.

Χειρισμός συμβάντων με πληκτρολόγιο και ποντίκι

Ο χειρισμός ειδικών συμβάντων πληκτρολογίου και ποντικιού γίνεται χρησιμοποιώντας το Advanced User Interactions API. Περιέχει το Δράσεις και την Ενέργειες κλάσεις που χρειάζονται κατά την εκτέλεση αυτών των συμβάντων. Τα παρακάτω είναι τα πιο συχνά χρησιμοποιούμενα συμβάντα πληκτρολογίου και ποντικιού που παρέχονται από την κλάση Actions.

Μέθοδος Descriptιόν
clickAndHold() Κλικ (χωρίς απελευθέρωση) στην τρέχουσα θέση του ποντικιού.
contextΚλικ() Εκτελεί ένα κλικ περιβάλλοντος στην τρέχουσα θέση του ποντικιού. (Δεξί κλικ Ενέργεια ποντικιού)
doubleClick() Πραγματοποιεί διπλό κλικ στην τρέχουσα θέση του ποντικιού.
dragAndDrop (πηγή, στόχος) Πραγματοποιεί κλικ και αναμονή στη θέση του στοιχείου προέλευσης, μετακινείται στη θέση του στοιχείου προορισμού και, στη συνέχεια, απελευθερώνει το ποντίκι.

παράμετροι:

πηγή- στοιχείο για εξομοίωση κουμπί κάτω στο.

στόχο- στοιχείο για να μετακινηθείτε και να αφήσετε το ποντίκι στο.

dragAndDropBy (πηγή, x-offset, y-offset) Εκτελεί κλικ και κρατά στη θέση του στοιχείου προέλευσης, μετακινείται κατά μια δεδομένη μετατόπιση και, στη συνέχεια, απελευθερώνει το ποντίκι.

παράμετροι:

πηγή- στοιχείο για εξομοίωση κουμπί κάτω στο.

xOffset- μετατόπιση οριζόντιας κίνησης.

yOffset- μετατόπιση κάθετης κίνησης.

keyDown(modifier_key) Εκτελεί ένα πάτημα πλήκτρων τροποποιητή. Δεν απελευθερώνει το πλήκτρο τροποποίησης – οι επακόλουθες αλληλεπιδράσεις ενδέχεται να υποθέσουν ότι παραμένει πατημένο.

παράμετροι:

modifier_key – οποιοδήποτε από τα πλήκτρα τροποποίησης (Keys.ALT, Keys.SHIFT ή Keys.CONTROL)

keyUp(τροποποιητής _κλειδί) Εκτελεί μια απελευθέρωση κλειδιού.

παράμετροι:

modifier_key – οποιοδήποτε από τα πλήκτρα τροποποίησης (Keys.ALT, Keys.SHIFT ή Keys.CONTROL)

moveByOffset (x-offset, y-offset) Μετακινεί το ποντίκι από την τρέχουσα θέση του (ή 0,0) με τη δεδομένη μετατόπιση.

παράμετροι:

x-offset- οριζόντια μετατόπιση. Μια αρνητική τιμή σημαίνει μετακίνηση του ποντικιού αριστερά.

y-offset- κατακόρυφη μετατόπιση. Μια αρνητική τιμή σημαίνει μετακίνηση του ποντικιού προς τα κάτω.

moveToElement(toElement) Μετακινεί το ποντίκι στη μέση του στοιχείου.

παράμετροι:

toElement- στοιχείο προς μετακίνηση.

ελευθέρωση() Απελευθερώνει το πατημένο αριστερό κουμπί του ποντικιού στην τρέχουσα θέση του ποντικιού
sendKeys (oneElement, charsequence) Στέλνει μια σειρά από πατήματα πλήκτρων στο στοιχείο.

παράμετροι:

oneElement – ​​στοιχείο που θα λάβει τις πληκτρολογήσεις, συνήθως ένα πεδίο κειμένου

charsequence – οποιαδήποτε τιμή συμβολοσειράς που αντιπροσωπεύει την ακολουθία των πλήκτρων που θα σταλούν

Στο παρακάτω παράδειγμα, θα χρησιμοποιήσουμε τη μέθοδο moveToElement() για να τοποθετήσουμε το ποντίκι σε ένα Mercury Σειρές τραπεζιών περιηγήσεων. Δείτε το παρακάτω παράδειγμα.

Χειρισμός συμβάντων με πληκτρολόγιο και ποντίκι

Το κελί που φαίνεται παραπάνω είναι ένα τμήμα του a στοιχείο. Εάν δεν αιωρείται, το χρώμα του είναι #FFC455 (πορτοκαλί). Μετά την αιώρηση, το χρώμα του κελιού γίνεται διαφανές. Γίνεται το ίδιο χρώμα με το μπλε φόντο όλου του πορτοκαλί τραπεζιού.

Βήμα 1) Εισαγάγετε το Δράσεις και Ενέργειες τάξεις.

Χειρισμός συμβάντων με πληκτρολόγιο και ποντίκι

Βήμα 2) Δημιουργήστε ένα νέο αντικείμενο Actions.

Χειρισμός συμβάντων με πληκτρολόγιο και ποντίκι

Βήμα 3) Δημιουργήστε μια ενέργεια χρησιμοποιώντας το αντικείμενο Actions στο βήμα 2.

Χειρισμός συμβάντων με πληκτρολόγιο και ποντίκι

Σε αυτήν την περίπτωση, θα χρησιμοποιήσουμε τη μέθοδο moveToElement() επειδή απλώς θα τοποθετήσουμε το δείκτη του ποντικιού πάνω από τη σύνδεση "Home". Η μέθοδος build() είναι πάντα η τελική μέθοδος που χρησιμοποιείται, έτσι ώστε όλες οι ενέργειες που αναφέρονται να συγκεντρώνονται σε ένα μόνο βήμα.

Βήμα 4) Χρησιμοποιήστε τη μέθοδο perform() κατά την εκτέλεση του αντικειμένου Action που σχεδιάσαμε στο Βήμα 3.

Χειρισμός συμβάντων με πληκτρολόγιο και ποντίκι

Παρακάτω είναι ολόκληρος ο κώδικας WebDriver για να ελέγξετε το χρώμα φόντου του στοιχείο πριν και μετά την τοποθέτηση του ποντικιού.

package 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 = "https://demo.guru99.com/test/newtours/";
        System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
                WebDriver driver = new FirefoxDriver();

                driver.get(baseUrl);           
                WebElement link_Home = driver.findElement(By.linkText("Home"));
                WebElement td_Home = driver
                        .findElement(By
                        .xpath("//html/body/div"
                        + "/table/tbody/tr/td"
                        + "/table/tbody/tr/td"
                        + "/table/tbody/tr/td"
                        + "/table/tbody/tr"));    
                 
                Actions builder = new Actions(driver);
                Action mouseOverHome = builder
                        .moveToElement(link_Home)
                        .build();
                 
                String bgColor = td_Home.getCssValue("background-color");
                System.out.println("Before hover: " + bgColor);        
                mouseOverHome.perform();        
                bgColor = td_Home.getCssValue("background-color");
                System.out.println("After hover: " + bgColor);
                driver.close();
        }
}

Η παρακάτω έξοδος δηλώνει ξεκάθαρα ότι το χρώμα του φόντου έγινε διαφανές μετά το πέρασμα του ποντικιού.

Τάξη δράσης σε Selenium

Δημιουργία μιας σειράς πολλαπλών ενεργειών

Μπορείτε να δημιουργήσετε μια σειρά ενεργειών χρησιμοποιώντας τις κλάσεις Action και Actions. Απλώς θυμηθείτε να κλείσετε τη σειρά με τη μέθοδο build(). Εξετάστε το δείγμα κώδικα παρακάτω.

Δημιουργία μιας σειράς πολλαπλών ενεργειών

public static void main(String[] args) {
String baseUrl = "http://www.facebook.com/"; 
WebDriver driver = new FirefoxDriver();

driver.get(baseUrl);
WebElement txtUsername = driver.findElement(By.id("email"));

Actions builder = new Actions(driver);
Action seriesOfActions = builder
	.moveToElement(txtUsername)
	.click()
	.keyDown(txtUsername, Keys.SHIFT)
	.sendKeys(txtUsername, "hello")
	.keyUp(txtUsername, Keys.SHIFT)
	.doubleClick(txtUsername)
	.contextClick()
	.build();
	
seriesOfActions.perform() ;

}

Δημιουργία μιας σειράς πολλαπλών ενεργειών

Σύνοψη

  • Ο χειρισμός ειδικών συμβάντων πληκτρολογίου και ποντικιού γίνεται χρησιμοποιώντας το AdvancedUserInteractions API.
  • Τα συμβάντα λέξης-κλειδιού και ποντικιού που χρησιμοποιούνται συχνά είναι τα doubleClick(), keyUp, dragAndDropBy, contextClick & sendKeys.