Kliknij prawym przyciskiem myszy i Double Kliknij Selenium

โšก Inteligentne podsumowanie

Kliknij prawym przyciskiem myszy i Double Kliknij Selenium to akcje myszy zautomatyzowane za pomocฤ… klasy Actions. Ten samouczek demonstruje obie operacje z dziaล‚ajฤ…cymi Java kod, rzeczywiste scenariusze testowe i metody, ktรณre nimi sterujฤ… Selenium Sterownik sieciowy.

  • ๐Ÿ–ฑ๏ธ. Metoda podstawowa: Klasa Actions udostฤ™pnia metodฤ™ contextClick() dla klikniฤ™cia prawym przyciskiem myszy i doubleClick() dla dwukrotnego klikniฤ™cia dowolnego elementu WebElement.
  • ๐Ÿงญ Schemat przepล‚ywu pracy: Zlokalizuj element, utwรณrz wystฤ…pienie akcji ze sterownikiem, wywoล‚aj akcjฤ™ i wykonaj polecenie perform() w celu jej wykonania.
  • ๐Ÿงช Testowany scenariusz: Oba przykล‚ady odnoszฤ… siฤ™ do demo.guru99.com/test/simple_context_menu.html w celu uzyskania sprawdzonych i powtarzalnych wynikรณw.
  • ๐Ÿ†š Wyrรณลผnienie akcji: Klikniฤ™cie prawym przyciskiem myszy otwiera menu kontekstowe; dwukrotne klikniฤ™cie wywoล‚uje zmiany stanu, takie jak alerty lub edycje.
  • ๐Ÿค– Integracja AI: Samonaprawiajฤ…ce siฤ™ lokalizatory i wspomagane sztucznฤ… inteligencjฤ… Selenium struktury redukujฤ… niestabilnoล›ฤ‡ podczas klikania.

Kliknij prawym przyciskiem myszy i Double Kliknij Selenium

Kliknij prawym przyciskiem myszy Selenium

Kliknij prawym przyciskiem myszy Selenium WebDriver jest obsล‚ugiwany za pomocฤ… klasy Actions. Operacja ta nazywana jest rรณwnieลผ klikniฤ™ciem kontekstowym. Predefiniowane contextClick() Metoda klasy Actions wykonuje klikniฤ™cie prawym przyciskiem myszy. Poniลผej znajduje siฤ™ podstawowa skล‚adnia.

Actions actions = new Actions(driver);
WebElement elementLocator = driver.findElement(By.id("ID"));
actions.contextClick(elementLocator).perform();

Jak kliknฤ…ฤ‡ prawym przyciskiem myszy Selenium

Poniลผszy scenariusz uruchamia Guru99 strona demonstracyjna, wykonuje klikniฤ™cie prawym przyciskiem myszy i wybiera opcjฤ™ z wyล›wietlonego menu kontekstowego.

Scenariusz testowy:

  1. Uruchomiฤ‡: https://demo.guru99.com/test/simple_context_menu.html
  2. Kliknij prawym przyciskiem myszy na przycisk โ€žkliknij mnie prawym przyciskiem myszyโ€
  3. Kliknij link Edytuj w wyล›wietlonym menu
  4. Kliknij OK w alercie
  5. Zamknij przeglฤ…darkฤ™

Code:

package test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;

public class ContextClick {
    public static void main(String[] args) throws InterruptedException {
        WebDriver driver;
        System.setProperty("webdriver.chrome.driver", "X://chromedriver.exe");
        driver = new ChromeDriver();

        driver.get("https://demo.guru99.com/test/simple_context_menu.html");
        driver.manage().window().maximize();

        Actions action = new Actions(driver);
        WebElement link = driver.findElement(By.cssSelector(".context-menu-one"));
        action.contextClick(link).perform();

        WebElement element = driver.findElement(By.cssSelector(".context-menu-icon-copy"));
        element.click();
    }
}

Wynik: Pojawia siฤ™ menu kontekstowe i wybierana jest opcja Edytuj.

Kliknij prawym przyciskiem myszy Selenium

Double Kliknij Selenium

Zgodnie z tym samym wzorcem opartym na dziaล‚aniach, Double Kliknij Selenium WebDriver uลผywa predefiniowanych doubleClick() Metoda. Klasa Actions to standardowa pomoc dla zล‚oลผonych operacji myszy i klawiatury, takich jak klikniฤ™cie prawym przyciskiem myszy, przeciฤ…ganie i upuszczanie oraz najechanie kursorem.

Actions actions = new Actions(driver);
WebElement elementLocator = driver.findElement(By.id("ID"));
actions.doubleClick(elementLocator).perform();

Przepล‚yw wykonania jest nastฤ™pujฤ…cy:

  • Utwรณrz obiekt Akcji przy uลผyciu instancji sterownika.
  • Zlokalizuj element docelowy za pomocฤ… findElement.
  • Numer Telefonu doubleClick() i ล‚aล„cuch perform() wykonaฤ‡.

jak Double Kliknij Selenium

Nastฤ™pny scenariusz pokazuje peล‚ne podwรณjne klikniฤ™cie, ktรณre uruchamia JavaSkrypt wysyล‚a alert i potwierdza go programowo.

Scenariusz testowy:

Code:

package test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.Alert;

public class DoubleClickDemo {
    public static void main(String[] args) throws InterruptedException {
        WebDriver driver;
        System.setProperty("webdriver.chrome.driver", "X://chromedriver.exe");
        driver = new ChromeDriver();

        driver.get("https://demo.guru99.com/test/simple_context_menu.html");
        driver.manage().window().maximize();

        Actions action = new Actions(driver);
        WebElement link = driver.findElement(By.xpath("//button[text()='Double-Click Me To See Alert']"));
        action.doubleClick(link).perform();

        Alert alert = driver.switchTo().alert();
        System.out.println("Alert Text\n" + alert.getText());
        alert.accept();
    }
}

Wynik: Pojawia siฤ™ alert, a jego tekst jest drukowany na Eclipse Konsola.

Double Kliknij Selenium zaalarmowaฤ‡

Double Kliknij wyjล›cie konsoli

FAQ

Metoda WebElement.click() wywoล‚uje tylko klikniฤ™cie lewym przyciskiem myszy. Klikniฤ™cie prawym przyciskiem myszy i dwukrotne klikniฤ™cie to zล‚oลผone zdarzenia myszy, ktรณre wymagajฤ… poล‚ฤ…czenia ล‚aล„cuchowego klasy Actions i wywoล‚ania jej za pomocฤ… funkcji perform().

Tak. contextClick() symuluje prawdziwy prawy przycisk myszy i otwiera menu kontekstowe aplikacji. Te dwa terminy sฤ… uลผywane zamiennie. Selenium Dokumenty.

Klasa Actions kolejkuje zdarzenia. Bez perform() poล‚ฤ…czone kroki nigdy nie sฤ… wysyล‚ane. perform() oprรณลผnia kolejkฤ™ i wykonuje kaลผdฤ… kolejkฤ™ akcji po kolei.

Tak, JavaScript Executor moลผe wywoล‚aฤ‡ podwรณjne klikniฤ™cie, ale pomija rzeczywiste zdarzenia przeglฤ…darki. Zalecane jest podejล›cie oparte na akcjach. Selenium norma.

Tak. Klikniฤ™cie prawym przyciskiem myszy i dwukrotne klikniฤ™cie za pomocฤ… opcji Akcje dziaล‚a w przeglฤ…darce Chrome bez interfejsu uลผytkownika i Firefox pod warunkiem, ลผe obsล‚ugiwany jest interfejs API W3C Actions. Selenium 4 sterowniki w peล‚ni to obsล‚ugujฤ….

Klasa Akcji dotarล‚a do Selenium WebDriver 2.0 znajduje siฤ™ w org.openqa.selenium.interactions i jest zachowywany w Selenium 3 i 4 ze wsparciem W3C Actions.

Narzฤ™dzia AI i Selenium alternatywy zastosuj samonaprawiajฤ…ce siฤ™ lokalizatory, ktรณre dostosowujฤ… siฤ™ do zmian elementรณw podczas klikniฤ™ฤ‡, redukujฤ…c ryzyko wystฤ…pienia niestabilnych bล‚ฤ™dรณw wynikajฤ…cych z dynamicznych identyfikatorรณw lub zmieniajฤ…cych siฤ™ ukล‚adรณw.

Tak. Asystenci kodu AI potrafiฤ… przekonwertowaฤ‡ scenariusz w jฤ™zyku potocznym na Selenium Java or Python kod wykorzystujฤ…cy contextClick() i doubleClick(), a takลผe sugerujฤ…ce solidne lokalizatory i oczekiwania.

Podsumuj ten post nastฤ™pujฤ…co: