詳解Java Selenium中的鼠標(biāo)控制操作
簡(jiǎn)介
本文主要講解如何用java Selenium 控制鼠標(biāo)在瀏覽器上的操作方法。主要列舉的代碼示例,無(wú)圖顯示??梢宰约荷洗a執(zhí)行操作看效果。
鼠標(biāo)控制
單擊左鍵
模擬完成單擊鼠標(biāo)左鍵的操作,一般點(diǎn)擊進(jìn)入子頁(yè)面等會(huì)用到。
第一種通過(guò)WebElement對(duì)象的click()方法實(shí)現(xiàn)單擊左鍵
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class SeleniumDemo { private final static String webDriver = "webdriver.chrome.driver"; private final static String webDriverPath ="E:\\chromedriver\\chromedriver.exe"; public static void main(String[] args) throws InterruptedException { System.setProperty(webDriver, webDriverPath); WebDriver driver= new ChromeDriver(); //Jenkins 登錄界面 driver.get("http://119.167.159.214:8080/login"); Thread.sleep(2000); //定位按鈕元素 WebElement commentPlugin=driver.findElement(By.name("Submit")); //執(zhí)行單擊操作 commentPlugin.click(); } }
第二種通過(guò)Actions對(duì)象的click()方法實(shí)現(xiàn)單擊左鍵
//定位按鈕元素 WebElement commentPlugin=driver.findElement(By.name("Submit")); // 實(shí)例化Actions類對(duì)象:actions,并將driver傳給actions Actions actions = new Actions(driver); //無(wú)定位點(diǎn)擊 actions.click().perform(); //定位web元素后點(diǎn)擊 actions.click(commentPlugin).perform();
.perform()方法是動(dòng)作執(zhí)行的意思,每個(gè)動(dòng)作方法必須再使用.perform()才能執(zhí)行。
單擊右鍵
鼠標(biāo)右擊的操作與左擊有很大不同,需要使用 Actions 。
//定位按鈕元素 WebElement commentPlugin=driver.findElement(By.name("Submit")); // 實(shí)例化Actions類對(duì)象:actions,并將driver傳給actions Actions actions = new Actions(driver); //無(wú)定位右鍵點(diǎn)擊 actions.contextClick().perform(); //定位web元素后右鍵點(diǎn)擊 actions.contextClick(commentPlugin).perform();
雙擊左鍵
模擬鼠標(biāo)雙擊操作。
//定位按鈕元素 WebElement commentPlugin=driver.findElement(By.name("Submit")); // 實(shí)例化Actions類對(duì)象:actions,并將driver傳給actions Actions actions = new Actions(driver); //無(wú)定位雙擊 actions.doubleClick().perform(); //定位web元素后雙擊 actions.contextClick(commentPlugin).perform();
按壓左鍵
模擬鼠標(biāo)按下左鍵不松手
//無(wú)定位鼠標(biāo)按壓左鍵 actions.clickAndHold().perform(); //定位web元素后鼠標(biāo)按壓左鍵 actions.clickAndHold(commentPlugin).perform();
鼠標(biāo)箭頭移動(dòng)
模擬鼠標(biāo)箭頭移動(dòng)
//移動(dòng)到定位的元素位置上 actions.moveToElement(commentPlugin).perform();
鼠標(biāo)釋放
模擬鼠標(biāo)按壓后,釋放鼠標(biāo)
//鼠標(biāo)釋放 actions.release().perform(); //定位釋放鼠標(biāo)釋放 actions.release(commentPlugin).perform();
鼠標(biāo)拖拽
模擬鼠標(biāo)選中web元素后拖拽到指定位置的操作
//需要拖拽的web元素 WebElement source=driver.findElement(By.id("source")); //拖拽的目標(biāo)元素的位置 WebElement target=driver.findElement(By.id("target")); //拖拽操作 actions.dragAndDrop(source,target).perform();
鼠標(biāo)等待
一般點(diǎn)擊網(wǎng)頁(yè)的某個(gè)按鈕,網(wǎng)頁(yè)需要渲染一端時(shí)間才會(huì)出現(xiàn)新的dom樹,所以我們需要操作等待執(zhí)行。
//定位web元素后鼠標(biāo)按壓左鍵 actions.clickAndHold(commentPlugin).perform(); //動(dòng)作等待3秒 actions.pause(5000); //釋放鼠標(biāo)左鍵 actions.release(commentPlugin).perform();
到此這篇關(guān)于詳解Java Selenium中的鼠標(biāo)控制操作的文章就介紹到這了,更多相關(guān)Java Selenium鼠標(biāo)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot shiro認(rèn)證授權(quán)實(shí)現(xiàn)原理及實(shí)例
這篇文章主要介紹了Springboot shiro認(rèn)證授權(quán)實(shí)現(xiàn)原理及實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06MyBatis?Mapper.XML?標(biāo)簽使用小結(jié)
在MyBatis中,通過(guò)resultMap可以解決字段名和屬性名不一致的問(wèn)題,對(duì)于復(fù)雜的查詢,引用實(shí)體或使用<sql>標(biāo)簽可以定義復(fù)用的SQL片段,提高代碼的可讀性和編碼效率,使用這些高級(jí)映射和動(dòng)態(tài)SQL技巧,可以有效地處理復(fù)雜的數(shù)據(jù)庫(kù)交互場(chǎng)景2024-10-10springboot項(xiàng)目整合注冊(cè)功能模塊開發(fā)實(shí)戰(zhàn)
這篇文章主要介紹了springboot項(xiàng)目整合注冊(cè)功能模塊開發(fā)實(shí)戰(zhàn),在用戶的注冊(cè)是首先需要查詢當(dāng)前的用戶名是否存在,如果存在則不能進(jìn)行注冊(cè),相當(dāng)于一個(gè)查詢語(yǔ)句,本文通過(guò)實(shí)例代碼詳細(xì)講解,需要的朋友可以參考下2022-11-11SpringMVC配置javaConfig及StringHttpMessageConverter示例
這篇文章主要介紹了SpringMVC配置javaConfig及StringHttpMessageConverter實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07關(guān)于在Java中如何使用yaml的實(shí)例
這篇文章主要介紹了關(guān)于在Java中如何使用yaml的實(shí)例,YAML是一種輕量級(jí)的數(shù)據(jù)序列化格式。它以易讀、易寫的文本格式表示數(shù)據(jù),支持列表、字典等各種數(shù)據(jù)結(jié)構(gòu),被廣泛應(yīng)用于配置文件、數(shù)據(jù)傳輸協(xié)議等領(lǐng)域,需要的朋友可以參考下2023-08-08在mybatis 中使用if else 進(jìn)行判斷的操作
這篇文章主要介紹了在mybatis 中使用if else 進(jìn)行判斷的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02在idea2023中使用SpringBoot整合Lombok全過(guò)程及詳細(xì)用法
Lombok項(xiàng)目是一個(gè)java庫(kù),它可以自動(dòng)插入到編輯器和構(gòu)建工具中,增強(qiáng)java的性能,本文詳細(xì)給大家介紹了在idea2023中使用SpringBoot整合Lombok全過(guò)程及詳細(xì)用法,需要的朋友可以參考下2023-09-09volatile可見(jiàn)性的一些認(rèn)識(shí)和論證
volatile的關(guān)鍵詞的使用在JVM內(nèi)存模型中已是老生常談了,這篇文章主要結(jié)合自己對(duì)可見(jiàn)性的一些認(rèn)識(shí)和一些直觀的例子來(lái)談?wù)剉olatile,感興趣的朋友一起看看吧2017-08-08SpringBoot整合Hashids實(shí)現(xiàn)數(shù)據(jù)ID加密隱藏的全過(guò)程
這篇文章主要為大家詳細(xì)介紹了SpringBoot整合Hashids實(shí)現(xiàn)數(shù)據(jù)ID加密隱藏的全過(guò)程,文中的示例代碼講解詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01