Python+Selenium+Unittest 之selenium13--WebDriver操作方法3-鼠标操作2

        这篇说下ActionChains里常用的几种鼠标操作的方法。

ActionChains常用的鼠标操作方法
click()鼠标左键单击
double_click()鼠标左键双击
context_click()鼠标右键单击
move_to_element()鼠标移动到某个元素上(鼠标悬浮操作)
click_and_hold()点击鼠标左键,不松开
drag_and_drop()拖拽到某个元素然后松开
drag_and_drop_by_offset()拖拽到某个坐标然后松开
move_by_offset()

从当前位置移动到某个坐标

move_to_element_with_offset()

移动到距某个元素多远

pause()鼠标停止操作
release()在某个元素上释放鼠标按钮

        以上是常用的鼠标操作,这里简单举例下平时工作中用到的最多的几种方法。

目录

1、click(元素)

2、double_click(元素)

3、context_click()

4、click_and_hold()

5、release()

 6、move_to_element()

7、move_by_offset()

8、move_to_element_with_offset()

9、drag_and_drop()

10、drag_and_drop_by_offset()


1、click(元素)

      click()就是鼠标点击左键的操作,找到需要鼠标左键点击的元素后,填入到括号中即可。

from selenium import webdriver              #导入selenium模块的webdriver
from selenium.webdriver import ActionChains #导入ActionChains类
driver = webdriver.Chrome()           #webdriver.Chrome()是启动谷歌浏览器然后定义成变量driver
driver.get("https://www.baidu.com")   #打开百度浏览器  
baidu_cl=driver.find_element_by_link_text("新闻")    #定位元素新闻按钮并赋值给baidu_cl
ActionChains(driver).click(baidu_cl).perform()      #发出点击新闻按钮的指令并执行

2、double_click(元素)

        double_click()是鼠标左键双击的操作,具体用法和鼠标点击一样,找到需要双击的元素,填写到括号中即可。

d_click=driver.find_element_by_id("元素id")    #定位到某个元素然后定义为d_click
ActionChains(driver).double_click(d_click).perform()      #发出双击某个元素的指令并执行

3、context_click()

      context_click()模拟的是鼠标右键单击的操作,具体用法同鼠标单击的操作,找到需要鼠标右键的元素,填写到括号中即可。

r_click=driver.find_element_by_id("元素id")    #定位到某个元素然后定义为r_click
ActionChains(driver).context_click(r_click).perform()      #发出右击某个元素的指令并执行

下面的4、5可以结合着6、7、8一起使用,就可以模拟鼠标拖拽的操作。

4、click_and_hold()

        click_and_hold()模拟的是点击元素并且不松开鼠标左键的操作就是类似人为的按住鼠标左键不松的行为,具体操作方法为click_and_hold(元素)。

hold_click=driver.find_element_by_id("元素id")    #定位到某个元素然后定义为hold_click
ActionChains(driver).click_and_hold(hold_click).perform()      #发出按住某个元素的指令并执行

   

5、release()

        release()模拟的是松开鼠标的按键的操作,一般结合着上面的click_and_hold()操作使用。

hold_click=driver.find_element_by_id("元素id")    #定位到某个元素然后定义为hold_click
ActionChains(driver).click_and_hold(hold_click).release().perform()      #发出按住某个元素的指令,执行完后,执行松开按键的操作

 6、move_to_element()

        move_to_element()是鼠标移动到某个元素的操作,可以用来做鼠标悬浮使用,比如在百度首页的设置,我们得先把鼠标放到设置按钮上,才可以进行下面的点击操作,move_to_element()就可以完成这个指令,具体使用方式时,找到需要悬浮的元素,然后填入到括号里即可。

from selenium import webdriver     #导入selenium模块的webdriver
import time       #导入time模块
from selenium.webdriver import ActionChains #导入ActionChains类
driver = webdriver.Chrome()           #webdriver.Chrome()是启动谷歌浏览器然后定义成变量driver
driver.get("https://www.baidu.com")   #打开百度浏览器
driver.maximize_window()      #全屏显示
setting = driver.find_element_by_id("s-usersetting-top")    #鼠标悬浮在设置按钮上
ActionChains(driver).move_to_element(setting).perform()   #执行上述操作
time.sleep(3)    #等待3秒
setting2 = driver.find_element_by_xpath('//*[@id="s-user-setting-menu"]/div/a[4]')   #点击隐私设置
ActionChains(driver).click(setting2).perform()     #执行操作

7、move_by_offset()

        move_by_offset()表示的操作为鼠标移动到某个位置,具体使用是需要再move_by_offset()括号里填上方位,原点是当前鼠标停留的位置,然后分为x轴和y轴,填入的方式为move_by_offset(x,y),以当前鼠标为原点,向左移动x就填正数,向右则为负数,向上移动y填正数,向下移动y填负数,运行完羡慕代码后会看到鼠标停留在了关闭预测的位置,并进行了点击。

from selenium import webdriver     #导入selenium模块的webdriver
import time       #导入time模块
from selenium.webdriver import ActionChains #导入ActionChains类
driver = webdriver.Chrome()           #webdriver.Chrome()是启动谷歌浏览器然后定义成变量driver
driver.get("https://www.baidu.com")   #打开百度浏览器
driver.maximize_window()      #全屏显示
setting = driver.find_element_by_id("s-usersetting-top")    #鼠标悬浮在设置按钮上
ActionChains(driver).move_to_element(setting).perform()   #执行上述操作
time.sleep(3)    #等待3秒
ActionChains(driver).move_by_offset(0,100).click().perform()     #执行向下移动100个px距离的操作,并进行点击

8、move_to_element_with_offset()

        move_to_element_with_offset()操作为移动到距离某个元素多少的坐标,在括号里填写 move_to_element_with_offset(元素,x,y),先找到某个元素,然后以该元素为原点进行移动。

from selenium import webdriver     #导入selenium模块的webdriver
import time       #导入time模块
from selenium.webdriver import ActionChains #导入ActionChains类
driver = webdriver.Chrome()           #webdriver.Chrome()是启动谷歌浏览器然后定义成变量driver
driver.get("https://www.baidu.com")   #打开百度浏览器
driver.maximize_window()      #全屏显示
setting = driver.find_element_by_id("s-usersetting-top")    #鼠标悬浮在设置按钮上
ActionChains(driver).move_to_element(setting).perform()   #执行上述操作(不执行这个操作看不出来效果)
time.sleep(3)    #等待3秒
ActionChains(driver).move_to_element_with_offset(setting,0,100).perform()  #移动到设置按钮上,然后向下移动100px

9、drag_and_drop()

         drag_and_drop()的操作是找到第一个元素,然后按住鼠标拖拽到第二个元素的位置。需要再括号里填入两个元素,起始元素和需要移动到的元素drag_and_drop(起始元素,终止元素)。

start1 = driver.find_element_by_id("起始元素")    #定位到某个元素然后定义为start1
stop1 = driver.find_element_by_id("终止元素")    #定位到某个元素然后定义为stop1
ActionChains(driver). drag_and_drop(start1,stop1).perform()   #发出命令定位到start1元素然后按住鼠标,之后移动到stop1后松开鼠标,并执行

10、drag_and_drop_by_offset()

        drag_and_drop_by_offset()和9有点类似,操作是定位到某个元素后,以该元素为原点,然后拖拽到某个坐标,具体写法为drag_and_drop_by_offset(元素,x,y)。

start2 = driver.find_element_by_id("起始元素")    #定位到某个元素然后定义为start2
ActionChains(driver). drag_and_drop_by_offset(start2,0,100).perform()   #发出命令定位到start2元素然后按住鼠标,之后拖动到以该元素为原点的向右移动100px的位置,并执行


       如果大家在使用过程中遇到了问题,可以在文章下留言,或者关注公众号:刘阿童木的进化记录,进行留言

                   下图为公众号二维码,内容会同步发出,大家可以关注一起学习!

                                   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/413082.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工作流管理框架airflow-安装部署教程

1 概述 Airflow是一个以编程方式编写,用于管理和调度工作流的平台。可以帮助你定义复杂的工作流程,然后在集群上执行和监控这些工作流。 Airflow计划程序在遵循指定的依赖项,同时在一组工作线程上执行任务。丰富的命令实用程序使在DAG上执行复杂的调度…

LabVIEW精确测量产品中按键力和行程

项目背景 传统的按键测试方法涉及手工操作,导致不一致和效率低下。在汽车行业中,带有实体按键的控制面板非常常见,确保一致的按键质量至关重要。制造商经常在这些组件的大规模、准确测试中遇到困难。显然,需要一个更自动化、精确…

2.【Linux】(进程的状态||深入理解fork||底层剖析||task_struct||进程优先级||并行和并发||详解环境变量)

一.进程 1.进程调度 Linux把所有进程通过双向链表的方式连接起来组成任务队列,操作系统和cpu通过选择一个task_struct执行其代码来调度进程。 2.进程的状态 1.运行态:pcb结构体在运行或在运行队列中排队。 2.阻塞态:等待非cpu资源就绪&am…

算法练习-A+B/财务管理/实现四舍五入/牛牛的菱形字符(题目链接+题解打卡)

难度参考 难度:简单 分类:熟悉OJ与IDE的操作 难度与分类由我所参与的培训课程提供,但需要注意的是,难度与分类仅供参考。以下内容均为个人笔记,旨在督促自己认真学习。 题目 A B1. A B - AcWing题库财务管理1004:财…

【C语言基础考研向】05 scanf读取标准输入超详解

文章目录 一.scanf函数的原理 样例问题原因解决方法 二.多种数据类型混合输入 错误样例正确样例 一.scanf函数的原理 C语言未提供输入/输出关键字,其输入和输出是通过标准函数库来实现的。C语言通过scanf函数读取键盘输入,键盘输入又被称为标准输入。…

FairyGUI Day 1 导入FairyGUI

FairyGUI Unity3d引擎版本:Uinty3d 20233.2.3f1 1、从资产商店中将FairyGUI购入我的资产中,目前是免费的。 2、从我的资产中将FairyGUI导入到当前项目中。 3、我遇到的问题,我的Assets下有两个文件夹分别是Resources和Scenes,导…

postman案例

一、表单接口 基本正向 有效反向 无效反向 JSON接口 基本正向 有效反向 无效反向 文件上传接口 token 获取token值 一: 二: Bearer 获取的token的值,至于鉴权方式要根据swagger接口文档要求

DNS分离解析

一、介绍 分离解析的域名服务器实际也是主域名服务器,这里主要是指根据不同的客户端提供不同的域名解析记录。比如来自内网和外网的不同网段地址区域的客户机请求解析同一域名时,为其提供不同的解析结果,得到不同的IP地址。 DNS的分离…

冻结Prompt微调LM: T5 PET (a)

T5 paper: 2019.10 Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer Task: Everything Prompt: 前缀式人工prompt Model: Encoder-Decoder Take Away: 加入前缀Prompt,所有NLP任务都可以转化为文本生成任务 T5论文的初衷如…

tcpdump常用命令

tcp首部解析: tcp-首部_tcp首部-CSDN博客 ref: Home | TCPDUMP & LIBPCAP https://www.cnblogs.com/onlyforcloud/p/4396126.html tcpdump 详细使用指南(请尽情食用)_tcpdump指定ip和端口-CSDN博客 【博客192】抓取报文查…

输入框输入关键字 下拉框的关键字高亮

直接上代码 //搜索框部分 <div><input v-modelkeyWord /><button clickseachFn>搜索</button> </div> //下拉框部分 <div><div v-html"item.name" v-foritem in droplist :keyitem.id></div> </div> <sc…

SpringBoot 入门教程

1.复习SSM项目中&#xff0c;用spring&#xff0c;mybatis,springmvc这三个框架整合的项目。 SSM项目的所有类&#xff0c;这是用SSM整合一个搜索书籍种类和呈现的前端和后端的ssm的小项目。 2.springboot如何去开发这个页面&#xff1a; 新建springboot项目&#xff0c;勾选对…