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

⚡ Έξυπνη Σύνοψη

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

  • 🖱️ Βασικός Σκοπός: Η κλάση Actions αυτοματοποιεί σύνθετα συμβάντα ποντικιού και πληκτρολογίου, κάτι που η βασική κλάση click() δεν μπορεί.
  • 🔑 Δύο Μαθήματα: Η εντολή Actions δημιουργεί την αλληλεπίδραση. Η εντολή Action αποθηκεύει την μεταγλωττισμένη ακολουθία για εκτέλεση.
  • 🧱 Κατασκευάστε και μετά εκτελέστε: Αλυσιδώστε μεθόδους, ολοκληρώστε με build() και εκτελέστε με perform().
  • 📋 Βασικές μέθοδοι: moveToElement(), dragAndDrop(), keyDown()/keyUp(), contextClick() και sendKeys().
  • 🤖 Ενεργοποίηση Τεχνητής Νοημοσύνης: Οι βοηθοί τεχνητής νοημοσύνης δημιουργούν κώδικα κλάσης δράσης και εντοπίζουν αυτόματα τους χρήστες κατά τη διάρκεια δοκιμών αλληλεπίδρασης.

Έξοδος με τοποθέτηση ποντικιού

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

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

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

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

Μέθοδος Περιγραφή
clickAndHold() Κλικ (χωρίς απελευθέρωση) στην τρέχουσα θέση του ποντικιού.
contextΚλικ() Εκτελεί ένα κλικ με βάση τα συμφραζόμενα (δεξί κλικ) στην τρέχουσα θέση του ποντικιού.
doubleClick() Πραγματοποιεί διπλό κλικ στην τρέχουσα θέση του ποντικιού.
dragAndDrop (πηγή, στόχος) Κάνει κλικ και κρατάει πατημένο το ποντίκι στο στοιχείο πηγής, μετακινείται στο στοιχείο στόχου και, στη συνέχεια, αφήνει το ποντίκι. Παράμετροι: πηγή (στοιχείο που θα πατηθεί), στόχος (στοιχείο που θα αφεθεί).
dragAndDropBy (πηγή, x-offset, y-offset) Κάνει κλικ και κρατάει πατημένο το κουμπί στο στοιχείο πηγής, μετακινείται κατά μια δεδομένη μετατόπιση και στη συνέχεια απελευθερώνεται. Παράμετροι: πηγή, xOffset (οριζόντια), yOffset (κάθετη).
keyDown(modifier_key) Πατάει ένα πλήκτρο τροποποίησης χωρίς να το απελευθερώνει, επομένως οι μεταγενέστερες αλληλεπιδράσεις υποθέτουν ότι παραμένει πατημένο. Παράμετρος: ένα πλήκτρο τροποποίησης (Keys.ALT, Keys.SHIFT ή Keys.CONTROL).
keyUp(κλειδί_τροποποίησης) Απελευθερώνει ένα πλήκτρο τροποποίησης. Παράμετρος: ένα πλήκτρο τροποποίησης (Keys.ALT, Keys.SHIFT ή Keys.CONTROL).
moveByOffset (x-offset, y-offset) Μετακινεί το ποντίκι από την τρέχουσα θέση του (ή 0,0) κατά τη δεδομένη μετατόπιση. Ένα αρνητικό x μετακινείται αριστερά. Ένα αρνητικό y μετακινείται προς τα πάνω.
moveToElement(toElement) Μετακινεί το ποντίκι στο κέντρο του στοιχείου. Παράμετρος: το στοιχείο στο οποίο θα μετακινηθεί.
ελευθέρωση() Απελευθερώνει το πατημένο αριστερό κουμπί του ποντικιού στην τρέχουσα θέση.
sendKeys (oneElement, charsequence) Αποστέλλει μια σειρά από πλήκτρα σε ένα στοιχείο. Παράμετροι: onElement (συνήθως ένα πεδίο κειμένου), charsequence (τα πλήκτρα που θα αποσταλούν).

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

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

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

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

Εισαγωγή ενεργειών και κλάσεων ενεργειών

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

Αντικείμενο δημιουργίας ενεργειών

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

Αντικείμενο Δράσης

Εδώ χρησιμοποιούμε το moveToElement() μέθοδος για να τοποθετήσετε τον δείκτη του ποντικιού πάνω από τον σύνδεσμο «Αρχική». Η 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();
    }
}

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

Έξοδος με τοποθέτηση ποντικιού

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

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

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

public static void main(String[] args) {
    String baseUrl = "https://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();
}

Έξοδος σειράς ενεργειών

Συχνές Ερωτήσεις

Η κλάση Action αντιπροσωπεύει μια μεταγλωττισμένη ακολουθία αλληλεπιδράσεων πληκτρολογίου και ποντικιού που έχει δημιουργηθεί με την κλάση Actions. Εκτελείται μέσω του API Advanced User Interactions API στο Selenium WebDriver.

Το Actions (πληθυντικός) είναι το εργαλείο δημιουργίας που χρησιμοποιείται για την αλυσιδωτή σύνδεση αλληλεπιδράσεων όπως η τοποθέτηση του δείκτη του ποντικιού και το κλικ. Το Action (ενικός) είναι το μεταγλωττισμένο αντικείμενο που επιστρέφεται από την build() και εκτελείται με την perform().

Η συνάρτηση build() μεταγλωττίζει όλες τις αλυσιδωτές αλληλεπιδράσεις σε μία μόνο σύνθετη ενέργεια (Action). Καλείται πάντα τελευταία (last), ακριβώς πριν από την perform(), έτσι ώστε τα βήματα που βρίσκονται στην ουρά να εκτελούνται μαζί ως μία ακολουθία.

Η συνάρτηση perform() εκτελεί την ενσωματωμένη ενέργεια στο πρόγραμμα περιήγησης. Χωρίς αυτήν, οι αλυσιδωτές αλληλεπιδράσεις απλώς τοποθετούνται στην ουρά και δεν αποστέλλονται ποτέ στη σελίδα.

Χρησιμοποιήστε την συνάρτηση moveToElement(element) σε ένα αντικείμενο Actions και, στη συνέχεια, καλέστε την συνάρτηση build() και perform(). Αυτό μετακινεί τον κέρσορα στο κέντρο του στοιχείου και ενεργοποιεί οποιαδήποτε συμπεριφορά κατάδειξης, όπως ένα αναπτυσσόμενο μενού.

Υποστηρίζει τις συναρτήσεις clickAndHold, contextClick, doubleClick, dragAndDrop, dragAndDropBy, keyDown, keyUp, moveByOffset, moveToElement, release και sendKeys — καλύπτοντας τις πιο προηγμένες αλληλεπιδράσεις.

Τα εργαλεία τεχνητής νοημοσύνης χρησιμοποιούν αυτοεπιδιορθούμενους εντοπιστές που προσαρμόζονται όταν αλλάζουν στοιχεία, μειώνοντας τις ασταθείς αποτυχίες στις δοκιμές κατά την τοποθέτηση του δείκτη του ποντικιού και μεταφοράς και απόθεσης. Συνιστούν επίσης σταθερά XPaths και προσθέτουν αυτόματα έξυπνες αναμονές.

Ναι. Οι βοηθοί κώδικα τεχνητής νοημοσύνης μετατρέπουν ένα απλό σενάριο, όπως «τοποθέτηση του δείκτη του ποντικιού πάνω από την Αρχική σελίδα και δεξί κλικ», σε μια λειτουργική αλυσίδα Ενεργειών με build() και perform(), και προτείνουν ισχυρούς εντοπιστές.

Συνοψίστε αυτήν την ανάρτηση με: