在Selenium中双击和右键单击并举例说明

在Selenium中双击

在Selenium Web驱动程序中,双击操作可以使用Actions类来完成。Actions类是Selenium Web驱动程序中的一个预定义类,用于执行多个键盘和鼠标操作,如右键单击、拖放等。

双击Selenium Using Actions类

Actions actions = new Actions(driver);
WebElement elementLocator = driver.findElement(By.id("ID"));
actions.doubleClick(elementLocator).perform();
  • 最初,我们需要通过将驱动程序实例作为参数传递来实例化Actions类的对象
  • 使用查找元素命令,我们需要查找要双击的元素的定位器
  • 使用Actions类预定义的双击方法,需要对web元素进行双击操作

在Selenium中单击鼠标右键

Selenium Web驱动程序中的右键单击操作可以使用Actions类来完成。下面是使用Actions类演示右击操作的代码。

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

双击示例

测试场景

  • 启动网址:http://demo.guru.com/test/simple_context_menu.html
  • 双击标记为“双击我以查看告警”的按钮
  • 在显示的告警上单击确定按钮

代码:

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 DobuleClickDemo {
    public static void main(String[] args) throws InterruptedException {
        WebDriver driver;
        System.setProperty("webdriver.chrome.driver","X://chromedriver.exe");
        driver= new ChromeDriver();
//Launch the Application Under Test (AUT)
        driver.get("http://www.itxiaonv.com/test/simple_context_menu.html");
        driver.manage().window().maximize();
        driver.get("http://www.itxiaonv.com/test/simple_context_menu.html");
        driver.manage().window().maximize();
//Double click the button to launch an alertbox
        Actions action = new Actions(driver);
        WebElement link =driver.findElement(By.xpath("//button[text()='Double-Click Me To See Alert']"));
        action.doubleClick(link).perform();
//Switch to the alert box and click on OK button
        Alert alert = driver.switchTo().alert();
        System.out.println("Alert Text\n" +alert.getText());
        alert.accept();
//Closing the driver instance
//driver.quit();
    }
}

结果:

将单击标记为“双击我以查看告警”的按钮,并显示弹出窗口

在Eclipse中,可以在控制台中看到输出

右键单击示例

测试场景:

  1. 启动网址:http://demo.guru.com/test/simple_context_menu.html
  2. 在按钮上进行右键操作:右键单击我
  3. 在显示的右键单击选项列表中单击编辑链接
  4. 在显示的告警上单击确定按钮
  5. 关闭浏览器

代码:

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();
//Launch the Application Under Test (AUT)
        driver.get("http://demo.guru.com/test/simple_context_menu.html");
        driver.manage().window().maximize();
// Right click the button to launch right click menu options
        Actions action = new Actions(driver);
        WebElement link = driver.findElement(By.cssSelector(".context-menu-one"));
        action.contextClick(link).perform();
// Click on Edit link on the displayed menu options
        WebElement element = driver.findElement(By.cssSelector(".context-menu-icon-copy"));
        element.click();
// Accept the alert displayed
//driver.switchTo().alert().accept();
// Closing the driver instance
//driver.quit();
    }
}

结果:

总结:

  • Selenium中的Actions类主要用于执行复杂的键盘和鼠标操作。因此,与Javascript相比,在Selenium中执行右键单击和双击等操作首选Actions类。
  • 右击操作主要用于在元素上单击鼠标右键打开一个新菜单时。如下所述,可以使用预定义的命令上下文Click来完成Selenium Web驱动程序中的右键单击操作

Java Actions action = new Actions(driver); WebElement link = driver.findElement(By.ID ("Element ID")); action.contextClick(link).perform();

  • 当双击操作后网页元素的状态发生变化时,使用双击操作。Selenium Web驱动程序中的双击操作可以使用预定义的命令双击来完成,如下所述

Java Actions action = new Actions(driver); WebElement link = driver.findElement(By.ID ("Element ID")); action. doubleClick (link).perform();

IT赶路人

专注IT知识分享