Högerklicka och Double Klicka in Selenium

⚡ Smart sammanfattning

Högerklicka och Double Klicka in Selenium är musåtgärder som automatiseras genom klassen Actions. Den här handledningen demonstrerar båda operationerna med fungerande Java kod, verkliga testscenarier och metoderna som driver dem inuti Selenium WebDriver.

  • 🖱️ Kärnmetod: Klassen Actions exponerar contextClick() för högerklick och doubleClick() för dubbelklick på valfritt WebElement.
  • 🧭 Arbetsflödesmönster: Lokalisera elementet, instansiera Actions med drivrutinen, anropa åtgärden och kör perform() i en kedja för att köra.
  • 🧪 Testat scenario: Båda exemplen riktar sig till demo.guru99.com/test/simple_context_menu.html för verifierade, repeterbara resultat.
  • ???? Åtgärdsskillnad: Högerklick öppnar kontextmenyer; dubbelklick utlöser tillståndsändringar som varningar eller redigeringar.
  • 🤖 AI-integration: Självläkande lokaliseringsinstrument och AI-assisterade Selenium ramverk minskar flagnande egenskaper under klickåtgärder.

Högerklicka och Double Klicka in Selenium

Högerklicka in Selenium

Högerklicka åtgärd in Selenium WebDriver utförs med hjälp av klassen Actions. Operationen kallas även Context Click. Den fördefinierade contextClick() Metoden i Actions-klassen utför högerklicket. Nedan följer den grundläggande syntaxen.

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

Hur man högerklickar in Selenium

Scenariot nedan inleder en Guru99 demosida, högerklickar och väljer ett alternativ från snabbmenyn som visas.

Testscenario:

  1. Lansera: https://demo.guru99.com/test/simple_context_menu.html
  2. Högerklicka på knappen "högerklicka på mig"
  3. Klicka på länken Redigera i den visade menyn
  4. Klicka på OK på varningen
  5. Stäng webbläsaren

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

Resultat: Kontextmenyn visas och alternativet Redigera är valt.

Högerklicka in Selenium

Double Klicka in Selenium

Följer samma handlingsbaserade mönster, Double Klicka in Selenium WebDriver använder den fördefinierade doubleClick() Metoden. Klassen Actions är standardhjälpen för sammansatta mus- och tangentbordsoperationer som högerklicka, dra och släpp och hovra.

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

Exekveringsflödet är:

  • Instansiera ett Actions-objekt med hjälp av drivrutinsinstansen.
  • Lokalisera målelementet med findElement.
  • Ring upp doubleClick() och kedja perform() att verkställa.

Hur man Double Klicka in Selenium

Nästa scenario visar ett fullständigt dubbelklick som utlöser en JavaSkriptvarning och bekräftar det programmatiskt.

Testscenario:

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

Resultat: Aviseringen dyker upp och aviseringstexten skrivs ut på Eclipse konsol.

Double Klicka in Selenium varna

Double Klicka på konsolutgång

Vanliga frågor

WebElement.click() utlöser endast ett vänsterklick. Högerklick och dubbelklick är sammansatta mushändelser som kräver att Actions-klassen kedjas och skickas via perform().

Ja. contextClick() simulerar ett riktigt högerklick och öppnar programmets kontextmeny. De två termerna används omväxlande i Selenium docs.

Klassen Actions köar händelser. Utan perform() skickas aldrig de kedjade stegen. perform() tömmer kön och kör varje köad åtgärd i ordning.

Ja, JavaScript Executor kan utlösa ett dubbelklick, men den kringgår verkliga webbläsarhändelser. Åtgärder-metoden är den rekommenderade. Selenium standard.

Ja. Högerklicka och dubbelklicka via Åtgärder fungerar i headless Chrome och Firefox förutsatt att W3C Actions API stöds. Selenium 4 förare stöder detta helt.

Klassen Handlingar anlände till Selenium WebDriver 2.0 finns i org.openqa.selenium.interactions och behålls i Selenium 3 och 4 med stöd för W3C Actions.

AI-verktyg och Selenium alternativ Använd självläkande lokaliseringsverktyg som anpassar sig till elementförändringar under klick, vilket minskar risken för ojämna fel från dynamiska ID:n eller skiftande layouter.

Ja. AI-kodassistenter kan konvertera ett scenario på vanligt engelska till Selenium Java or Python kod med contextClick() och doubleClick(), plus förslag på robusta lokaliserings- och väntningsfunktioner.

Sammanfatta detta inlägg med: