Højreklik og Double Klik ind Selenium

⚡ Smart opsummering

Højreklik og Double Klik ind Selenium er musehandlinger automatiseret gennem Actions-klassen. Denne vejledning demonstrerer begge operationer med fungerende Java kode, virkelige testscenarier og de metoder, der driver dem indeni Selenium WebDriver.

  • 🖱️ Kernemetode: Actions-klassen eksponerer contextClick() for højreklik og doubleClick() for dobbeltklik på et hvilket som helst WebElement.
  • 🧭 Arbejdsgangsmønster: Find elementet, instantier handlinger med driveren, kald handlingen, og kæde perform() sammen for at udføre.
  • 🧪 Testet scenarie: Begge eksempler er rettet mod demo.guru99.com/test/simple_context_menu.html for at få verificerede, gentagelige resultater.
  • 🆚 Handlingsforskel: Højreklik åbner kontekstmenuer; dobbeltklik udløser tilstandsændringer såsom advarsler eller redigeringer.
  • 🤖 AI-integration: Selvreparerende lokaliseringssystemer og AI-assisteret Selenium Frameworks reducerer ujævnheder under klikhandlinger.

Højreklik og Double Klik ind Selenium

Højreklik ind Selenium

Højreklik handling ind Selenium WebDriver udføres ved hjælp af Actions-klassen. Handlingen kaldes også Context Click. Den foruddefinerede contextClick() Metoden i Actions-klassen udfører højreklikket. Nedenfor er den grundlæggende syntaks.

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

Sådan højreklikker du ind Selenium

Scenariet nedenfor starter en Guru99 demoside, højreklik og vælg en indstilling i den viste kontekstmenu.

Testscenarie:

  1. Start: https://demo.guru99.com/test/simple_context_menu.html
  2. Højreklik på knappen "højreklik på mig"
  3. Klik på linket Rediger i den viste menu
  4. Klik på OK på advarslen
  5. Luk browseren

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: Kontekstmenuen vises, og indstillingen Rediger er valgt.

Højreklik ind Selenium

Double Klik ind Selenium

Efter det samme handlingsbaserede mønster, Double Klik ind Selenium WebDriver bruger den foruddefinerede doubleClick() Metoden. Klassen Actions er standardhjælperen til sammensatte mus- og tastaturhandlinger såsom højreklik, træk og slip og hold musen over.

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

Udførelsesflowet er:

  • Instantiér et Actions-objekt ved hjælp af driverinstansen.
  • Find målelementet med findElement.
  • Ring til os på doubleClick() og kæde perform() at henrette.

Hvordan man Double Klik ind Selenium

Det næste scenarie demonstrerer et fuldt dobbeltklik, der udløser en JavaScriptet advarer og bekræfter det programmatisk.

Testscenarie:

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: Advarslen dukker op, og advarselsteksten udskrives på Eclipse konsol.

Double Klik ind Selenium alert

Double Klik på konsoloutput

Ofte Stillede Spørgsmål

WebElement.click() udløser kun et venstreklik. Højreklik og dobbeltklik er sammensatte musehændelser, der kræver, at Actions-klassen kædes sammen og afsendes via perform().

Ja. contextClick() simulerer et rigtigt højreklik og åbner programmets kontekstmenu. De to udtryk bruges i flæng i Selenium docs.

Actions-klassen sætter hændelser i kø. Uden perform() afsendes de sammenkædede trin aldrig. perform() tømmer køen og udfører hver handling i køen i rækkefølge.

Ja, JavaScript Executor kan udløse et dobbeltklik, men det omgår rigtige browserhændelser. Handlinger-tilgangen er den anbefalede. Selenium standarden.

Ja. Højreklik og dobbeltklik via Handlinger fungerer i headless Chrome og Firefox forudsat at W3C Actions API'en understøttes. Selenium 4 chauffører støtter dette fuldt ud.

Handlingsklassen ankom i Selenium WebDriver 2.0 findes i org.openqa.selenium.interactions og bevares i Selenium 3 og 4 med W3C Actions-understøttelse.

AI-værktøjer og Selenium alternativer Anvend selvreparerende lokaliseringsværktøjer, der tilpasser sig elementændringer under klik, hvilket reducerer ustabile fejl fra dynamiske ID'er eller skiftende layouts.

Ja. AI-kodeassistenter kan konvertere et scenarie på almindeligt engelsk til Selenium Java or Python kode ved hjælp af contextClick() og doubleClick(), plus forslag til robuste lokatorer og ventepunkter.

Opsummer dette indlæg med: