基於Selenium2+Java的UI自動化(7)- 模擬鍵盤鼠標操作


webdriver提供Actions類,來模擬鼠標點擊、懸浮、拖拽、鍵盤輸入等操作;

一、鼠標雙擊、右擊


selenium模擬鼠標單擊是用WebElement.click(); 方法,但是雙擊、右擊,需要使用Actions類來模擬;


package com.automation.actions; 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; /** * 類說明:模擬鼠標雙擊、右擊的操作 * <br/> * @version 1.0 * 2016年11月21日 下午8:41:14 */ public class DoubleClickAndRightClick { private static WebDriver driver = null ; private static String chromeDriverDir = "D:\\workspace\\A_Test\\resource\\chromedriver.exe"; public static void main(String[] args) { //1.打開瀏覽器; System.setProperty("webdriver.chrome.driver", chromeDriverDir); driver = new ChromeDriver(); driver.manage().window().maximize(); //打開文件網址; driver.get("http://www.baidu.com/"); //定位百度輸入框對象; WebElement inputBox = driver.findElement(By.id("kw")); /* * 雙擊、右擊輸入框元素, * 1.需要聲明Actions類對象; * 2.使用Actions對象的doubleClick、contextClick方法實現雙擊、右擊操作; */ //聲明Actions類對象; Actions action = new Actions(driver); //雙擊操作; action.doubleClick(inputBox).build().perform(); //右擊操作; action.contextClick(inputBox).build().perform(); driver.quit(); } }

二、鼠標懸浮在指定元素上方


在有些頁面上,需要鼠標停留在指定的元素上方,才能觸發一些頁面響應,例如隱藏元素、菜單等,這就需要模擬鼠標懸浮在元素之上;


package com.automation.actions; 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; /** * 類說明:模擬鼠標懸浮在元素之上的操作 * <br/> * @version 1.0 * 2016年11月21日 下午8:52:50 */ public class MoveToElement { private static WebDriver driver = null ; private static String chromeDriverDir = "D:\\workspace\\A_Test\\resource\\chromedriver.exe"; public static void main(String[] args) { //1.打開瀏覽器; System.setProperty("webdriver.chrome.driver", chromeDriverDir); driver = new ChromeDriver(); driver.manage().window().maximize(); //打開文件網址; driver.get("http://www.baidu.com/"); //定位百度搜索按鈕對象; WebElement searchButton = driver.findElement(By.id("su")); /* * 模擬鼠標停留在搜索按鈕上方, * 1.需要聲明Actions類對象; * 2.使用Actions對象的moveToElement方法實現鼠標懸浮操作; */ //聲明Actions類對象; Actions action = new Actions(driver); //模擬鼠標懸浮在按鈕上 action.moveToElement(searchButton).perform(); driver.quit(); } }

三、模擬鼠標托轉


可以模擬有些網頁的元素,能夠被移動到其他位置;


package com.automation.actions; 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; /** * 類說明:模擬鼠標懸浮在元素之上的操作 * <br/> * @version 1.0 * 2016年11月21日 下午9:00:50 */ public class DragAndDrop { private static WebDriver driver = null ; private static String chromeDriverDir = "D:\\workspace\\A_Test\\resource\\chromedriver.exe"; public static void main(String[] args) { //1.打開瀏覽器; System.setProperty("webdriver.chrome.driver", chromeDriverDir); driver = new ChromeDriver(); driver.manage().window().maximize(); //打開文件網址; driver.get("http://www.baidu.com/"); //定位百度搜索按鈕對象; WebElement draggable = driver.findElement(By.id("su")); /* * 模擬鼠標拖拽元素對象, * 1.需要聲明Actions類對象; * 2.使用Actions對象的dragAndDropBy方法實現鼠標拖拽操作; */ //聲明Actions類對象; Actions action = new Actions(driver); //向右拖動10個像素,共拖拽5次 for (int i = 0; i < 5; i++) { //10表示元素的橫坐標向右移動10個像素,0表示元素的縱坐標不變; action.dragAndDropBy(draggable, 10, 0).build().perform(); } driver.quit(); } }

四、模擬鍵盤操作


package com.automation.actions; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.interactions.Actions; /** * 類說明:模擬鍵盤的操作 * <br/> * @version 1.0 * 2016年11月21日 下午9:00:50 */ public class KeyBoard { private static WebDriver driver = null ; private static String chromeDriverDir = "D:\\workspace\\A_Test\\resource\\chromedriver.exe"; public static void main(String[] args) { //1.打開瀏覽器; System.setProperty("webdriver.chrome.driver", chromeDriverDir); driver = new ChromeDriver(); driver.manage().window().maximize(); //打開文件網址; driver.get("http://www.baidu.com/"); //聲明Actions類對象; Actions action = new Actions(driver); action.keyDown(Keys.CONTROL);//點擊control鍵 action.keyDown(Keys.SHIFT);//點擊shift鍵 action.keyUp(Keys.CONTROL);//松開control鍵 action.keyUp(Keys.SHIFT);//松開shift鍵 action.keyDown(Keys.TAB);//點擊Tab鍵 action.keyUp(Keys.TAB);//松開tab鍵 driver.quit(); } }

尤其在搜索過程中,如果有聯想功能,就需要用到鍵盤的上、下鍵來操作,這就需要使用到模擬鍵盤;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM