在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中,可以在控制台中看到输出
右键单击示例
测试场景:
- 启动网址: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;
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();