web自动化3-常用鼠标+键盘事件

# 鼠标右键
from selenium.webdriver import ActionChains  # 鼠标右键操作模拟chehui = driver.find_element(By.XPATH, '//*[text()="我是小海呀2"]')
rightClick = ActionChains(driver)  # 实例化ActionChains类
time.sleep(2)
rightClick.context_click(chehui).perform()  # context_click()执行右键操作,perform()是一个执行动作
time.sleep(2)
driver.find_element(By.XPATH, '//div[not(contains(@style,"display"))]/ul/li[text()="撤回"]').click()
driver.find_element(By.XPATH, '//span[text()="评"]/parent::button/preceding-sibling::div/div/button/span/i[contains(@class,"image")]').click()
#鼠标事件 链式调用1)找到元素对象2)调用鼠标方法,将元素对象作为参数传递3)调用perform()# 鼠标悬停在定位元素中心
hover_elem = driver.find_element(By.ID, "hover")
ActionChains(driver) .move_to_element(hover_elem) .perform()# 鼠标点击元素并按钮不放
clickable_elem = driver.find_element(By.ID, "clickable")
ActionChains(driver) .click_and_hold(clickable_elem) .perform()# 鼠标点击元素并松开
clickable_elem = driver.find_element(By.ID, "click")
ActionChains(driver) .click(clickable_elem) .perform()
# 鼠标右键元素
clickable_elem = driver.find_element(By.ID, "clickable")
ActionChains(driver) .context_click(clickable_elem).perform()# 鼠标双击元素
clickable_elem = driver.find_element(By.ID, "clickable")
ActionChains(driver) .double_click(clickable_elem).perform()# 鼠标拖动元素
# 源元素
draggable_elem = driver.find_element(By.ID, "draggable")
# 目标元素
droppable_elem = driver.find_element(By.ID, "droppable")
ActionChains(driver) .drag_and_drop(draggable_elem, droppable_elem).perform()# 滚轮滚动到元素位置
iframe_elem = driver.find_element(By.TAG_NAME, "iframe")
ActionChains(driver).scroll_to_element(iframe_elem).perform()# 先找到分级管理
分级管理 = self.driver.find_element(By.XPATH, '//ul/li[text()="分机管理"]')
ActionChains(self.driver).move_to_element(分级管理).perform()
time.sleep(1)
短信发送记录查询 = self.driver.find_element(By.XPATH, '//ul/li[text()="短信发送记录查询"]')
# 滚动到元素使其可见
self.driver.execute_script("arguments[0].scrollIntoView(true);", 短信发送记录查询)# 滚动到元素使其可见
driver.execute_script("arguments[0].scrollIntoView(true);", element)
import win32con
import win32clipboard as wincld
# 给鼠标右键复制使用
def ctrl_c(info):wincld.OpenClipboard()wincld.EmptyClipboard()wincld.SetClipboardData(win32con.CF_UNICODETEXT, info)wincld.CloseClipboard()# 给粘贴板写入: 早有蜻蜓立上头!
common.ctrl_c(" ~ 早有蜻蜓立上头!")
# 输入文本
driver.find_element(By.XPATH, '//div[@class="chatRoom" and @style!="display: none;"]/div[2]/div[3]/textarea').send_keys("你好啊!")
# crtl+V,追加内容
driver.find_element(By.XPATH, '//div[@class="chatRoom" and @style!="display: none;"]/div[2]/div[3]/textarea').send_keys(Keys.CONTROL, "V");
time.sleep(1)
driver.find_element(By.XPATH, '//div[@class="chatRoom" and @style!="display: none;"]/div[2]/div[3]/button[2]').click()
# 键盘事件 from selenium.webdriver import Keys
# 空格键:space
element.send_keys(Keys.SPACE)
# 制表符:tab
element.send_keys(Keys.TAB)
# 回车键:enter
element.send_keys(Keys.ENTER)
# 删除最后一个字符串
element.send_keys(Keys.BACK_SPACE)
# 全选:ctrl + A
element.send_keys(Keys.CONTROL, 'a')
# 复制:ctrl + C
element.send_keys(Keys.CONTROL, 'c')
# 将内容粘贴至元素内容框中,粘贴:ctrl + V
driver.find_element(By.ID, 'passwordA').send_keys(Keys.CONTROL, 'V')

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

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

相关文章

Navicat图形化管理工具安装教程

1、Navicat简介 Navicat 是一套快速、可靠的数据库管理工具,专为简化数据库的管理及降低系统管理成本而开发。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat使用直觉化的图形用户界面,让用户能够安全简单的方式创建、组织、访问并共用信…

SpringBoot集成Nacos服务注册发现

参考文档 springboot集成nacos服务注册发现中心_nacos-discovery-spring-boot-starter-CSDN博客 依赖 <dependency><groupId>com.alibaba.boot</groupId><artifactId>nacos-discovery-spring-boot-starter</artifactId><version>0.2.8&l…

Python爬虫技术 第16节 XPath

XPath是一种在XML文档中查找信息的语言&#xff0c;尽管XML和HTML在语法上有区别&#xff0c;但XPath同样适用于HTML文档的解析&#xff0c;尤其是在使用如lxml这样的库时。XPath提供了一种强大的方法来定位和提取XML/HTML文档中的元素和属性。 XPath基础 XPath表达式由路径表…

如何检查代理IP地址是否被占用

使用代理IP时&#xff0c;有时候会发现IP仍然不可用&#xff0c;可能是因为已经被其他用户或者网络占用了。为了检测代理IP是否被占用&#xff0c;我们可以采用一些方法进行验证测试&#xff0c;以保证代理IP的有效性和稳定性。 1.ARP缓存方法 ARP缓存法是一种简单有效的检测代…

Cesium 实现点击获取实体的 ID 值

文章目录 需求分析需求 点击球体上加载的实体,获取该实体的 ID 值 分析 var handler = new Cesium.ScreenSpaceEventHandler(this.map.scene.canvas); // 创建鼠标事件handler const that = this handler.setInputAction(</

Tinygrad,llama3,Reward Model

目录 Tinygrad 与其他框架的比较 llama3 Reward Model Tinygrad 是一个轻量级的深度学习框架,由George Hotz(也被称为geohot)开发。以下是对Tinygrad的详细介绍: 与其他框架的比较 与PyTorch、TensorFlow等更全面的深度学习框架相比,Tinygrad在功能上可能有所限制,…

Unity UGUI 之 事件接口

本文仅作学习笔记与交流&#xff0c;不作任何商业用途 本文包括但不限于unity官方手册&#xff0c;唐老狮&#xff0c;麦扣教程知识&#xff0c;引用会标记&#xff0c;如有不足还请斧正 本文在发布时间选用unity 2022.3.8稳定版本&#xff0c;请注意分别 1.什么是事件接口&…

【github】使用KeepassXC 解决github Enable two-factor authentication (2FA) 第二因子认证

下载 https://github.com/keepassxreboot/keepassxc/releases/download/2.7.9/KeePassXC-2.7.9-Win64.msi 代理地址 https://dgithub.xyz/keepassxreboot/keepassxc/releases/download/2.7.9/KeePassXC-2.7.9-Win64.msi 由于该软件不允许截图&#xff0c;以下操作参考官网 …

JavaScript模拟滑动手势

双击回到顶部 左滑动 右滑动 代码展示 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Gesture…

力扣高频SQL 50题(基础版)第八题

文章目录 力扣高频SQL 50题&#xff08;基础版&#xff09;第八题1581. 进店却未进行过交易的顾客题目说明思路分析实现过程准备数据&#xff1a;实现方式&#xff1a;结果截图&#xff1a;总结&#xff1a; 力扣高频SQL 50题&#xff08;基础版&#xff09;第八题 1581. 进店…

.NET Core 发展历程和版本迭代

.NET Core的发展历程和版本迭代可以归纳如下&#xff1a; 目录 一、起源与发展&#xff08;2010-2016&#xff09; 二、成熟与优化&#xff08;2017-2019&#xff09; 三、整合与统一&#xff08;2020至今&#xff09; 四、版本特性简述 五、版本更新迭代的功能区别 .NET…

jenkins删除历史构建记录

1、 登录jenkins&#xff0c;进入【Manage Jenkins】-【Script Console】&#xff0c;输入&#xff1a; def jobName "Test" //删除的项目名称 def maxNumber 60 // 保留的最小编号&#xff0c;意味着小于该编号的构建都将被删除 Jenkins.instance.getItemByFullN…

mybatis 多数据源 TDataSource required a single bean, but 2 were found

情况说明&#xff1a; 项目中本来就有一个数据源了&#xff0c;运行的好好的后来又合并了另一个项目&#xff0c;另一个项目也配置了数据源。 于是出现了如下错误&#xff1a; mybatis 多数据源 TDataSource required a single bean, but 2 were found 解决方法&#xff1a…

CSS前端面试题——怎么用CSS实现一个宽高自适应的正方形?

方法一&#xff1a;使用 padding 方案 这种方法通过设置元素的 padding 属性来实现宽高比例相等的正方形。假设我们希望正方形的边长为相对于父容器的百分比值&#xff0c;比如50% .square {width: 50%; /* 可以是任意宽度&#xff0c;这里假设为父元素宽度的50% */padding-t…

【深度学习】语音合成,TTS,ChatTTS项目体验

项目&#xff1a; https://github.com/2noise/ChatTTS/blob/main/README.md 这个fork项目不错&#xff1a; https://github.com/Jackiexiao/ChatTTS-api-ui-docker docker run \--gpus all --ipchost \--ulimit memlock-1 --ulimit stack67108864 \-p 8080:8080 -p 8501:850…

【反证法】932. 漂亮数组

本文涉及知识点 分治 数学 反证法 LeetCode932. 漂亮数组 如果长度为 n 的数组 nums 满足下述条件&#xff0c;则认为该数组是一个 漂亮数组 &#xff1a; nums 是由范围 [1, n] 的整数组成的一个排列。 对于每个 0 < i < j < n &#xff0c;均不存在下标 k&#x…

Python练手小项目

计算器 创建一个简单的计算器&#xff0c;能够进行加、减、乘、除四种基本运算。 # 定义加法函数 def add(x, y):return x y# 定义减法函数 def subtract(x, y):return x - y# 定义乘法函数 def multiply(x, y):return x * y# 定义除法函数 def divide(x, y):if y 0:return…

华为Ascend C算子开发(中级)考试

华为Ascend C算子开发&#xff08;中级&#xff09;考试题 提示&#xff1a;这个是河北廊坊Ascend C算子开发考试题和答案&#xff0c;仅供参考&#xff0c;因为不确定其他城市的考试题是否也是一样 文章目录 华为Ascend C算子开发&#xff08;中级&#xff09;考试题一、op_ho…

kafka源码阅读-Broker如何处理生产者的消息写入请求

概述 Kafka源码包含多个模块&#xff0c;每个模块负责不同的功能。以下是一些核心模块及其功能的概述&#xff1a; 服务端源码 &#xff1a;实现Kafka Broker的核心功能&#xff0c;包括日志存储、控制器、协调器、元数据管理及状态机管理、延迟机制、消费者组管理、高并发网络…

端到端自动驾驶科普向

从设计思想看&#xff0c;自动驾驶系统分为模块化和黑箱化两个大类。前者将系统分解为一系列功能独立的模块&#xff0c;每一个模块单独设计&#xff0c;组合到一起实现自动驾驶功能&#xff08;我们熟知的定位 感知 规划 控制 决策等模块&#xff09;&#xff1b;后者又称为端…