Action Class in Selenium

โšก Nutikas kokkuvรตte

Action Class in Selenium tegeleb tรคiustatud klaviatuuri ja hiire toimingutega, nagu kursoriga liikumine, lohistamine, paremklรตps ja klahvikombinatsioonid, tรคiustatud kasutajainteraktsioonide API kaudu. See รตpetus selgitab toiminguid ja toiminguklasse, vรตtmemeetodeid ja seda, kuidas mitut interaktsiooni รผheks jadaks aheldada.

  • ๐Ÿ–ฑ๏ธ Pรตhieesmรคrk: Klass Actions automatiseerib hiire ja klaviatuuri liitsรผndmusi, mida tavaline click() ei suuda.
  • ๐Ÿ”‘ Kaks klassi: Toimingud loovad interaktsiooni; toiming salvestab kompileeritud jada kรคivitamiseks.
  • ๐Ÿงฑ Ehita ja seejรคrel teosta: Ahelmeetodid, lรตpeta build()-ga ja kรคivita perform()-ga.
  • ???? Peamised meetodid: moveToElement(), dragAndDrop(), keyDown()/keyUp(), contextClick() ja sendKeys().
  • ๐Ÿค– Tehisintellekti lubamine: Tehisintellekti assistendid genereerivad interaktsioonitestide ajal Action-klassi koodi ja isetervendavaid lokaatoreid.

Hiire kohal liikumise vรคljund

Action Class in Selenium

Action Class in Selenium on sisseehitatud funktsioon klaviatuuri ja hiire toimingute haldamiseks. See toetab selliseid toiminguid nagu mitu klรตpsu Ctrl-klahviga, lohistamine ja palju muud. Neid toiminguid tehakse tรคiustatud kasutajainteraktsioonide API abil. Selenium Veebidraiver.

Klaviatuuri ja hiire sรผndmuste kรคsitlemine

Spetsiaalsete klaviatuuri ja hiire sรผndmuste kรคsitlemine toimub kรคsuga Advanced User Interactions API. See sisaldab Meetmete ja tegevus klassid, mida on vaja nende sรผndmuste kรคivitamiseks. Allpool on loetletud Actions-klassi pakutavad kรตige sagedamini kasutatavad klaviatuuri ja hiire sรผndmused.

Meetod Kirjeldus
clickAndHold() Klรตpsab (vabastamata) hiire praeguses asukohas.
kontekstClick() Teeb hiire praeguses asukohas kontekstipรตhise klรตpsu (paremklรตps).
doubleClick() Teeb topeltklรตpsu hiire praeguses asukohas.
dragAndDrop(allikas, sihtmรคrk) Klรตpsa ja hoia all lรคhteelemendil, liigub sihtelemendile ja seejรคrel vabastab hiireklahvi. Parameetrid: lรคhteelement (element, millel klรตpsata), sihtmรคrk (element, millel klahv vabastada).
dragAndDropBy(allikas, x-nihe, y-nihe) Klรตpsa ja hoia all lรคhteelemendil, liigub etteantud nihke vรตrra ja seejรคrel vabastab. Parameetrid: allikas, xOffset (horisontaalne), yOffset (vertikaalne).
keyDown(muutja_vรตti) Vajutab muuteklahvi seda vabastamata, nii et hilisemad interaktsioonid eeldavad, et see jรครคb allavajutatuks. Parameeter: muuteklahv (Keys.ALT, Keys.SHIFT vรตi Keys.CONTROL).
keyUp(modifitseeriv_vรตti) Vabastab muuteklahvi. Parameeter: muuteklahv (Keys.ALT, Keys.SHIFT vรตi Keys.CONTROL).
moveByOffset(x-nihe, y-nihe) Liigutab hiirt selle praegusest asukohast (vรตi 0,0) antud nihke vรตrra. Negatiivne x liigub vasakule; negatiivne y liigub รผles.
liiguta elementi(elemendi juurde) Liigutab hiire elemendi keskele. Parameeter: element, kuhu liigutada.
vabasta () Vabastab allavajutatud hiire vasaku nupu praeguses asukohas.
sendKeys (รผks element, mรคrgijada) Saadab elemendile klahvivajutuste jada. Parameetrid: onElement (tavaliselt tekstivรคli), charsequence (saadetavate klahvivajutuste arv).

Jรคrgmises nรคites kasutame moveToElement() meetod รผhe kohal hรตljutamiseks Mercury Toursi tabeli read.

Klaviatuuri ja hiire sรผndmuste kรคsitlemine

รœlaltoodud lahter on osa a-st element. Kui hiirega kohal ei liigu, on selle vรคrv #FFC455 (oranลพ). Pรคrast hiirega kohal liigutamist muutub lahtri vรคrv lรคbipaistvaks ja sobib รผmbritseva tabeli taustaga.

Step 1) Importige Meetmete ja tegevus klassidesse.

Toimingute ja toiminguklasside importimine

Step 2) Looge uus Actions-objekt.

Toimingute objekti eksemplari loomine

Step 3) Looge toimingu eksemplar, kasutades 2. sammus kirjeldatud toimingute objekti.

Loo tegevusobjekti eksemplar

Siin me kasutame moveToElement() meetod hiirekursori hรตljutamiseks lingi โ€žAvalehtโ€ kohal. build() Meetodit kutsutakse alati viimasena, et kรตik loetletud toimingud kompileeritaks รผheks sammuks.

Step 4) Kasuta perform() meetod 3. etapis loodud Action-objekti kรคivitamiseks.

Soorita toiming

Allpool on tรคielik WebDriveri kood, mis kontrollib taustavรคrvi element enne ja pรคrast hiirega kohal liikumist.

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();
    }
}

Allolev vรคljund nรคitab, et taustavรคrv muutus pรคrast hiirega รผleviimist lรคbipaistvaks.

Hiire kohal liikumise vรคljund

Mitme tegevuse seeria loomine

Toimingute jada saab luua klasside Action ja Actions abil. Pea meeles, et seeria tuleb sulgeda klassiga build() meetod. Vaatleme allolevat nรคidiskoodi.

Mitme toimingu seeria loomine

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();
}

Toimingute seeria vรคljund

KKK

Klass Action esindab Actions klassi abil loodud klaviatuuri ja hiire interaktsioonide kompileeritud jada. See kรคivitatakse tรคiustatud kasutajainteraktsioonide API kaudu. Selenium Veebidraiver.

Toimingud (mitmus) on loogikaelement, mida kasutatakse selliste interaktsioonide nagu kursori hรตljutamine ja klรตpsamine aheldamiseks. Toiming (ainsus) on kompileeritud objekt, mille tagastab build() ja mida kรคivitatakse funktsiooniga perform().

build() kompileerib kรตik aheldatud interaktsioonid รผheks liittoiminguks. Seda kutsutakse alati viimaseks, vahetult enne perform() funktsiooni, seega jรคrjekorras olevad sammud tรคidetakse koos รผhe jadana.

perform() kรคivitab brauseris loodud toimingu. Ilma selleta pannakse aheldatud interaktsioonid ainult jรคrjekorda ja neid ei saadeta tegelikult kunagi lehele.

Kasuta Actions objektil funktsiooni moveToElement(element) ja seejรคrel kutsu vรคlja funktsioonid build() ja perform(). See liigutab kursori elemendi keskele ja kรคivitab mis tahes hรตljumise, nรคiteks rippmenรผรผ.

See toetab funktsioone clickAndHold, contextClick, doubleClick, dragAndDrop, dragAndDropBy, keyDown, keyUp, moveByOffset, moveToElement, release ja sendKeys โ€” hรตlmates enamikku keerukamaid interaktsioone.

Tehisintellekti tรถรถriistad kasutavad isetervendavaid lokaatoreid, mis kohanduvad elementide muutudes, vรคhendades ebaรผhtlaseid tรตrkeid hรตljumise ja lohistamise testides. Samuti soovitavad nad stabiilseid XPath-te ja lisavad automaatselt nutikaid ooteaegu.

Jah. Tehisintellekti koodiassistendid muudavad lihtsa inglise keele stsenaariumi, nรคiteks โ€žvii kursor avakuva kohale ja paremklรตpsaโ€, toimivaks toimingute ahelaks, kasutades funktsioone build() ja perform() ning pakuvad vรคlja usaldusvรครคrseid lokaatoreid.

Vรตta see postitus kokku jรคrgmiselt: