详解Java Selenium中的鼠标控制操作
作者:洛阳泰山 发布时间:2023-11-23 14:43:17
标签:Java,Selenium,鼠标
简介
本文主要讲解如何用java Selenium 控制鼠标在浏览器上的操作方法。主要列举的代码示例,无图显示。可以自己上代码执行操作看效果。
鼠标控制
单击左键
模拟完成单击鼠标左键的操作,一般点击进入子页面等会用到。
第一种通过WebElement对象的click()方法实现单击左键
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"));
//执行单击操作
commentPlugin.click();
}
}
第二种通过Actions对象的click()方法实现单击左键
//定位按钮元素
WebElement commentPlugin=driver.findElement(By.name("Submit"));
// 实例化Actions类对象:actions,并将driver传给actions
Actions actions = new Actions(driver);
//无定位点击
actions.click().perform();
//定位web元素后点击
actions.click(commentPlugin).perform();
.perform()方法是动作执行的意思,每个动作方法必须再使用.perform()才能执行。
单击右键
鼠标右击的操作与左击有很大不同,需要使用 Actions 。
//定位按钮元素
WebElement commentPlugin=driver.findElement(By.name("Submit"));
// 实例化Actions类对象:actions,并将driver传给actions
Actions actions = new Actions(driver);
//无定位右键点击
actions.contextClick().perform();
//定位web元素后右键点击
actions.contextClick(commentPlugin).perform();
双击左键
模拟鼠标双击操作。
//定位按钮元素
WebElement commentPlugin=driver.findElement(By.name("Submit"));
// 实例化Actions类对象:actions,并将driver传给actions
Actions actions = new Actions(driver);
//无定位双击
actions.doubleClick().perform();
//定位web元素后双击
actions.contextClick(commentPlugin).perform();
按压左键
模拟鼠标按下左键不松手
//无定位鼠标按压左键
actions.clickAndHold().perform();
//定位web元素后鼠标按压左键
actions.clickAndHold(commentPlugin).perform();
鼠标箭头移动
模拟鼠标箭头移动
//移动到定位的元素位置上
actions.moveToElement(commentPlugin).perform();
鼠标释放
模拟鼠标按压后,释放鼠标
//鼠标释放
actions.release().perform();
//定位释放鼠标释放
actions.release(commentPlugin).perform();
鼠标拖拽
模拟鼠标选中web元素后拖拽到指定位置的操作
//需要拖拽的web元素
WebElement source=driver.findElement(By.id("source"));
//拖拽的目标元素的位置
WebElement target=driver.findElement(By.id("target"));
//拖拽操作
actions.dragAndDrop(source,target).perform();
鼠标等待
一般点击网页的某个按钮,网页需要渲染一端时间才会出现新的dom树,所以我们需要操作等待执行。
//定位web元素后鼠标按压左键
actions.clickAndHold(commentPlugin).perform();
//动作等待3秒
actions.pause(5000);
//释放鼠标左键
actions.release(commentPlugin).perform();
来源:https://blog.csdn.net/weixin_40986713/article/details/128546182


猜你喜欢
- 本文实例为大家分享了Java实现简单万年历的具体代码,供大家参考,具体内容如下1 要求1、输入年份;2、输入月份;3、输出某年某月的日历。2
- 本文为大家整理了C#图片切割、图片压缩、缩略图生成的实现代码,大家可以收藏,方便以后使用,具体内容如下/// 图片切割函数 /// <
- 前言Kotlin越来越流行,在Google的推动下发展的很迅猛,现在的项目大多使用上了Kotlin,其简练的语法糖确实能减少不少代码。Ada
- 一、前言闭锁与栅栏是在多线程编程中的概念,因为在多线程中,我们不能控制线程的执行状态,所以给线程加锁,让其按照我们的想法有秩序的执行。闭锁C
- 在JavaBeans中有这样的一个描述:当一些信息需要使用类似于字典嵌套字典再嵌套列表这种很深的结构来储存的时候,请改用类来储存。实际上,这
- OverView今天在复习的时候,突然复习到我们的相机操作,但是对于相机操作,对于我来说比较复杂的是对于权限的操作。所有我们需要对我们的相机
- 定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。类型:行为
- Java7引入了Fork Join的概念,来更好的支持并行运算。顾名思义,Fork Join类似与流程语言的分支,合并的概念。也就是说Jav
- Android 活动条ActionBar的详解图一 图二 图三 图四 图五 ActionBar其提供的功能总结图一使用ActionB
- 1.线索化二叉树的介绍将数列 {1, 3, 6, 8, 10, 14 } 构建成一颗二叉树.问题分析:1.当我们对上面的二叉树进行中序遍历时
- 上一次说了如何收集我们已经发布的应用程序的错误信息,方便我们调试完善程序。上次说的收集方法主要是把收集的信息通过Http的post请求把相关
- 前言了解一下将 Android library 发布到中央仓库(比如 Maven Center,jitpack) 的过程中关于一些细节的疑惑
- 递归出现栈溢出stackoverflow递归是个不断回调方法的过程,使方法一遍遍的压入栈中,递归次数多了,栈满了也就溢出了。默认的栈大小是1
- 本文汇总了常用的DateTime日期类型格式化显示方法,方便读者在使用的时候参考借鉴一下。具体如下所示:1.绑定时格式化日期方法:<A
- 发现问题肯定有人发现连接mysql失败,然后又找不到问题所在,又出现一大最报错,如下图。解决过程 1.先查询自己的java版本,在
- 实现方式通过挨个罗列的方式一次复制子对象是非常耗费人力的,如果子对象是引用类型,则还要需要考虑是否对子对象进一步深拷贝。实际应用中,一个类如
- 这篇文章主要介绍了break在scala和java中的区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 一、存储Bean对象之前我们存储Bean时,需要在spring-config.xml中添加bean注册才行,这样的方式并不简单。我们要想更简
- 很多的Android入门程序猿来说对于Android自定义View,可能都是比较恐惧的,但是这又是高手进阶的必经之路,所有准备在自定义Vie
- 这篇文章主要介绍了java property配置文件管理工具框架过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考