Java的Selenium的特殊元素操作与定位之鼠标操作

自动化测试时,有些元素不适合直接点击或者进行某些操作时,可以使用Selenium的Actions类来模拟鼠标键盘操作,通过Actions对象可以发起鼠标左键、右键、移动鼠标等操作,最后使用perform方法执行操作。

actions.clickAndHold(onElement).moveToElement(toElement).release().build().perform();

//鼠标操作
chromeDriver.get("http://www.treejs.cn/v3/demo/cn/exedit/drag.html");
WebElement sourceElement = chromeDriver,findElement (By,id("treeDemo 2 span"));
WebElement targetElement = chromeDriver,findElement (By,id("treeDemo 3 span"));
//实例化actions对象,鼠标的相关操作
Actions actions =new Actions(chromeDriver);
actions.clickAndHold(sourceElement).moveToElement (targetElement) .release() .build().perform();

基本的鼠标点击操作:

使用Actions类的click()方法来模拟鼠标点击。

WebDriver driver = new ChromeDriver();
driver.get("http://example.com");

WebElement element = driver.findElement(By.id("some-id"));
Actions actions = new Actions(driver);
actions.click(element).perform();

鼠标悬停(Hover):

使用moveToElement()方法来模拟鼠标悬停在某个元素上。

actions.moveToElement(element).perform();

双击操作:

使用doubleClick()方法来模拟鼠标双击。

actions.doubleClick(element).perform();

右键点击(上下文点击):

使用contextClick()方法来模拟鼠标右键点击。

actions.contextClick(element).perform();

拖放操作:

使用dragAndDrop()方法来模拟拖放操作。

WebElement source = driver.findElement(By.id("source-id"));
WebElement target = driver.findElement(By.id("target-id"));
actions.dragAndDrop(source, target).perform();

鼠标移动到特定坐标:

使用moveByOffset()方法来模拟鼠标移动到相对于当前位置的特定坐标。

actions.moveByOffset(xOffset, yOffset).perform();

组合操作:

你可以将多个操作组合在一起,然后一次性执行。

actions.moveToElement(element)
.click()
.moveToElement(anotherElement)
.doubleClick()
.perform();

释放鼠标按钮:

如果你需要模拟按下鼠标按钮并移动到另一个位置然后释放,可以使用clickAndHold()release()方法。

WebElement source = driver.findElement(By.id("source-id"));
WebElement target = driver.findElement(By.id("target-id"));
actions.clickAndHold(source)
.moveToElement(target)
.release(target)
.perform();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值