詳解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類(lèi)對(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類(lèi)對(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類(lèi)對(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樹(shù),所以我們需要操作等待執(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-06
MyBatis?Mapper.XML?標(biāo)簽使用小結(jié)
在MyBatis中,通過(guò)resultMap可以解決字段名和屬性名不一致的問(wèn)題,對(duì)于復(fù)雜的查詢(xún),引用實(shí)體或使用<sql>標(biāo)簽可以定義復(fù)用的SQL片段,提高代碼的可讀性和編碼效率,使用這些高級(jí)映射和動(dòng)態(tài)SQL技巧,可以有效地處理復(fù)雜的數(shù)據(jù)庫(kù)交互場(chǎng)景2024-10-10
springboot項(xiàng)目整合注冊(cè)功能模塊開(kāi)發(fā)實(shí)戰(zhàn)
這篇文章主要介紹了springboot項(xiàng)目整合注冊(cè)功能模塊開(kāi)發(fā)實(shí)戰(zhàn),在用戶(hù)的注冊(cè)是首先需要查詢(xún)當(dāng)前的用戶(hù)名是否存在,如果存在則不能進(jìn)行注冊(cè),相當(dāng)于一個(gè)查詢(xún)語(yǔ)句,本文通過(guò)實(shí)例代碼詳細(xì)講解,需要的朋友可以參考下2022-11-11
SpringMVC配置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ù)序列化格式。它以易讀、易寫(xiě)的文本格式表示數(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-09
詳解如何獲取java中類(lèi)的所有對(duì)象實(shí)例
如何在運(yùn)行時(shí)獲取一個(gè)Java類(lèi)的所有對(duì)象實(shí)例呢,本文給大家介紹一種底層實(shí)現(xiàn)的方式,基于jvmti,代碼用C++實(shí)現(xiàn),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10
volatile可見(jiàn)性的一些認(rèn)識(shí)和論證
volatile的關(guān)鍵詞的使用在JVM內(nèi)存模型中已是老生常談了,這篇文章主要結(jié)合自己對(duì)可見(jiàn)性的一些認(rèn)識(shí)和一些直觀的例子來(lái)談?wù)剉olatile,感興趣的朋友一起看看吧2017-08-08
SpringBoot整合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

