详解Java Selenium中的鼠标控制操作

 更新时间:2023年01月06日 15:05:06   作者:洛阳泰山  
本文主要讲解如何用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();

到此这篇关于详解Java Selenium中的鼠标控制操作的文章就介绍到这了,更多相关Java Selenium鼠标内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Springboot shiro认证授权实现原理及实例

    Springboot shiro认证授权实现原理及实例

    这篇文章主要介绍了Springboot shiro认证授权实现原理及实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • MyBatis Mapper.XML 标签使用小结

    MyBatis Mapper.XML 标签使用小结

    在MyBatis中,通过resultMap可以解决字段名和属性名不一致的问题,对于复杂的查询,引用实体或使用<sql>标签可以定义复用的SQL片段,提高代码的可读性和编码效率,使用这些高级映射和动态SQL技巧,可以有效地处理复杂的数据库交互场景
    2024-10-10
  • springboot项目整合注册功能模块开发实战

    springboot项目整合注册功能模块开发实战

    这篇文章主要介绍了springboot项目整合注册功能模块开发实战,在用户的注册是首先需要查询当前的用户名是否存在,如果存在则不能进行注册,相当于一个查询语句,本文通过实例代码详细讲解,需要的朋友可以参考下
    2022-11-11
  • SpringMVC配置javaConfig及StringHttpMessageConverter示例

    SpringMVC配置javaConfig及StringHttpMessageConverter示例

    这篇文章主要介绍了SpringMVC配置javaConfig及StringHttpMessageConverter实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • 关于在Java中如何使用yaml的实例

    关于在Java中如何使用yaml的实例

    这篇文章主要介绍了关于在Java中如何使用yaml的实例,YAML是一种轻量级的数据序列化格式。它以易读、易写的文本格式表示数据,支持列表、字典等各种数据结构,被广泛应用于配置文件、数据传输协议等领域,需要的朋友可以参考下
    2023-08-08
  • 在mybatis 中使用if else 进行判断的操作

    在mybatis 中使用if else 进行判断的操作

    这篇文章主要介绍了在mybatis 中使用if else 进行判断的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • 在idea2023中使用SpringBoot整合Lombok全过程及详细用法

    在idea2023中使用SpringBoot整合Lombok全过程及详细用法

    Lombok项目是一个java库,它可以自动插入到编辑器和构建工具中,增强java的性能,本文详细给大家介绍了在idea2023中使用SpringBoot整合Lombok全过程及详细用法,需要的朋友可以参考下
    2023-09-09
  • 详解如何获取java中类的所有对象实例

    详解如何获取java中类的所有对象实例

    如何在运行时获取一个Java类的所有对象实例呢,本文给大家介绍一种底层实现的方式,基于jvmti,代码用C++实现,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-10-10
  • volatile可见性的一些认识和论证

    volatile可见性的一些认识和论证

    volatile的关键词的使用在JVM内存模型中已是老生常谈了,这篇文章主要结合自己对可见性的一些认识和一些直观的例子来谈谈volatile,感兴趣的朋友一起看看吧
    2017-08-08
  • SpringBoot整合Hashids实现数据ID加密隐藏的全过程

    SpringBoot整合Hashids实现数据ID加密隐藏的全过程

    这篇文章主要为大家详细介绍了SpringBoot整合Hashids实现数据ID加密隐藏的全过程,文中的示例代码讲解详细,对大家的学习或工作有一定的帮助,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01

最新评论