【Python+Selenium学习系列5】Selenium特殊元素定位之-鼠标悬停操作

前言

Selenium模拟用户在浏览器中的操作,比如点击按钮。在某些场景下,我们需要模拟鼠标悬停的操作,来触发一些隐藏的元素。本文将介绍Python Selenium实现鼠标悬停操作。

鼠标悬停,即当光标与其名称表示的元素重叠时触发的事件,在Selenium中将键盘鼠标操作封装在Action Chains类中。Action Chains类主要应用场景为单击鼠标双击鼠标鼠标拖曳等。

一、鼠标悬停方法分类

部分常用的方法使用分类如下:

  1. click(on_element=None)--模拟鼠标单击操作。
  2. click_and_hold(on_element=None)--模拟鼠标单击操作并且按住不放。
  3. double_click(on_element=None)--模拟鼠标双击操作。
  4. context_click(on_element=None)--模拟鼠标右击击操作。
  5. drag_and_drop(source,target)--模拟鼠标拖曳。
  6. drag_and_drop(source,xoffset,yoffset)--模拟将目标拖曳到目标位置。
  7. key_down(value,element=None)--模拟按住某个键,实现快捷键操作。
  8. key_up(value,element=None)--模拟松开某个键,一般和key_down操作一起使用。
  9. move_to_element(to_element)--模拟将鼠标移到指定的某个页面元素。
  10. move_to_element_with_offset(to_element,xoffset,yoffset)--移动鼠标至指定坐标。
  11. perform()--将之前一系列的Action Chains执行。
  12. release(on_element=None)--释放按下的鼠标。

二、鼠标悬停-场景案例

以百度首页-登录为例,开始鼠标没有放在“登录”按钮上时,display为none-元素隐藏。

鼠标放在“登录”按钮上后,display状态发生改变,由none变成block。

 三、鼠标悬停方法实例

以百度首页设置为例,使用“move_to_element”的方法,鼠标即可悬停于元素设置。

界面元素如下:

3.1 源代码

# <editor-fold desc="Description">
#coding=utf-8
from selenium.webdriver.common.by import By
#引用'webdriver'模块
from selenium import webdriver
#导入ActionChains类
from selenium.webdriver.common.action_chains import ActionChains# </editor-fold>
import timedef main():#启动谷歌浏览器driver = webdriver.Chrome()#浏览器窗口最大化driver.maximize_window()#导航到百度网页driver.get('https://www.baidu.com')#定位需要悬停的元素bg_config1=driver.find_element(By.XPATH,'//*[@id="s-usersetting-top"]')#创建一个ActionChains对象actions=ActionChains(driver)#使用move_to_element()模拟将鼠标悬停在超链接“设置”处,并通过perform()方法来执行操作actions.move_to_element(bg_config1).perform()#鼠标悬停时,定位元素,超链接“搜索设置”,然后单击操作bg_config2=driver.find_element(By.LINK_TEXT,"搜索设置")bg_config2.click()#等待5stime.sleep(5)#关闭浏览器driver.quit()if __name__ == '__main__':main()

3.2 运行结果

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

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

相关文章

DeepLearning in Pytorch|共享单车预测NN详解(思路+代码剖析)

目录 概要 一、代码概览 二、详解 基本逻辑 1.数据准备 2.设计神经网络 初版 改进版 测试 总结 概要 原文链接&#xff1a;DeepLearning in Pytorch|我的第一个NN-共享单车预测 我的第一个深度学习神经网络模型---利用Pytorch设计人工神经网络对某地区租赁单车的使用…

全网最最最详细centos7如何安装docker教程

在CentOS 7上安装Docker主要包括以下步骤&#xff1a; 1. 卸载旧版本的Docker 首先&#xff0c;需要确保系统上没有安装旧版本的Docker。可以通过以下命令来卸载它们&#xff1a; sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-late…

数据类型与运算符

关键字 C语言自己定义的一些单词 标识符//标志 定义 如变量&#xff0c;方法名&#xff0c;参数名&#xff0c;数组名等 要求 只有字母&#xff0c;数字下划线 不能以数字开头 不能用关键字 区分大小写 常量&#xff0c;变量 常量&#xff1a;不可变的量 变量&#xff1a;在程…

Linux安全--为Nginx加上PHP解析功能

yum install php-fpm -y安装php进程管理器 找到Nginx安装的路径 编辑Nginx配置文件

STL容器之哈希的补充——其他哈希问题

1.其他哈希问题 ​ 减少了空间的消耗&#xff1b; 1.1位图 ​ 位图判断在不在的时间复杂度是O(1)&#xff0c;速度特别快; ​ 使用哈希函数直接定址法&#xff0c;1对1映射&#xff1b; ​ 对于海量的数据判断在不在的问题&#xff0c;使用之前的一些结构已经无法满足&…

echarts中toolbox 中文乱码问题

问题描述 本地引用的echarts源文件&#xff0c;页面其他部分编码显示正常&#xff0c;唯独toolbox鼠标悬停在上面时提示信息显示乱码。 如图所示&#xff1a; 尝试过的方法 使用sublime text 3&#xff0c;notepad&#xff0c;记事本更改文件编码为utf-8引入时&#xff0c;在sc…

LVS集群(Linux Virtual server)介绍----及LVS的NAT模式部署(一)

群集的含义 ●Cluster&#xff0c;集群、群集由多台主机构成&#xff0c;但对外只表现为一个整体&#xff0c;只提供访问入口(域名或IP地址)&#xff0c;相当于一台大型计算机 问题&#xff1a; 互联网应用中&#xff0c;随着站点对硬件性能、响应速度、服务稳定性、数据可靠…

Nacos2.2.3之MySQL8.X持久化详细配置过程

Nacos2.2.3之MySQL8.X持久化详细配置过程 文章目录 Nacos2.2.3之MySQL8.X持久化详细配置过程1. 官网与下载1. 官网2. Naocs是什么&#xff1f;3. 下载 2. 安装与持久化配置1. 解压安装2. 创建数据库1. 连接数据库2. 创建nacos数据库3. 导入脚本4. 查看表 3. 持久化配置1. appli…

【Linux】编译器-gcc/g++使用

个人主页 &#xff1a; zxctscl 文章封面来自&#xff1a;艺术家–贤海林 如有转载请先通知 文章目录 1. 前言2. 初见gcc和g3. 程序的翻译过程3.1 预处理3.1.1 宏替换 去注释 头文件展开3.1.2 条件编译 3.2 编译3.3 汇编3.4 链接 4. 链接4.1 动态链接4.2 静态链接 1. 前言 在之…

OpenStack之keystone(用户认证)

Keystone&#xff08;认证&#xff09; Keystone 概述 1)管理用户及其权限 2)维护OpenStack Services 的 Endpoint 3)Authentication&#xff08;认证&#xff09;和 Authorization&#xff08;授权&#xff09; keystone的名词概念 1.User&#xff08;用户或服务&#xf…

C++内存管理篇

文章目录 1. C/C内存分布2. C中的内存管理方式3. operator new和operator delete函数4. new和delete的实现原理5. 定位new表达式(placement-new) 1. C/C内存分布 C语言中&#xff0c;为了方便管理内存空间&#xff0c;将内存分成了不同的区域&#xff0c;每个区域管理不同的数据…

代码随想录训练营第41天 | 动态规划:01背包理论基础、动态规划:01背包理论基础(滚动数组)、LeetCode 416.分割等和子集

动态规划&#xff1a;01背包理论基础 文章讲解&#xff1a;代码随想录(programmercarl.com) 视频讲解&#xff1a;带你学透0-1背包问题&#xff01;_哔哩哔哩_bilibili 动态规划&#xff1a;01背包理论基础&#xff08;滚动数组&#xff09; 文章讲解&#xff1a;代码随想录(…

支付宝开放平台证书验签生成签名接入方式的操作流程之公钥证书,密钥证书的生成

#小李子9479# 调用支付宝接口的安全验证方式均使用sign_type为RSA2的方式&#xff0c;有两种 1。密钥模式&#xff1a;应用公钥、应用私钥、平台公钥生成签名和验签方式 2。证书模式&#xff1a;支付宝根证书、支付宝公钥证书、应用公钥证书、应用私钥&#xff0c;采用RSA20…

Solidity Uniswap V2 价格预言机

预言机是连接区块链与链下服务的桥梁&#xff0c;这样就可以从智能合约中查询现实世界的数据。Chainlink 是最大的oracle网络之一&#xff0c;创建于 2017 年&#xff0c;如今已成为许多 DeFi 应用的重要组成部分。https://github.com/XuHugo/solidityproject Uniswap 虽然是链…

【❤️算法笔记❤️】-每日一刷-19、删除链表的倒数第 N个结点

文章目录 题目思路解答 题目 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5]示例 2&#xff1a; 输入&#xff1a;head [1], n 1 输出&#xff1a;[]示例 3&…

迷不迷糊?前后端、三层架构和MVC傻傻分不清

现在的项目都讲究前后端分离&#xff0c;那到底什么是前后端&#xff0c;前后端和以前的MVC以及三层架构啥关系呢&#xff1f;今天就这个问题展开一下&#xff0c;方面后面的学习&#xff0c;因为前面讲的jsp、servlet和javabean根据实例&#xff0c;基本上有一个框架的理解了&…

Ubuntu下使用DAPLink(OpenOCD)

目录 1. 下载OpenOCD源代码 2. 编译代码 2.1 运行bootstrap 2.2 安装关联库 2.3 运行./configure 2.4 运行make 2.5 运行sudo make install 3. 烧录程序 3.1 挂起MCU 3.2 写入镜像 3.3 校验镜像 通过OpenOCD实现&#xff0c;在Ubuntu18 64bit下验证。 1. 下载OpenOC…

人力资源社会保障部教育部关于印发《关于深化中小学教师职称制度改革的指导意见》的通知

人力资源社会保障部、教育部印发 关于《深化中小学教师职称制度改革的指导意见》的通知 人社部发[2015]79号 各省、自治区、直辖市及新疆生产建设兵团人力资源社会保障厅&#xff08;局&#xff09;、教育部门&#xff08;教委、教育局&#xff09;&#xff1a; 为深化教育…

机器学习第29周周报 Beyond Dropout

文章目录 week29 Beyond Dropout摘要Abstract一、泛化理论二、文献阅读1. 题目2. abstract3. 网络架构3.1 特征图失真3.2 失真优化 4. 文献解读4.1 Introduction4.2 创新点4.3 实验过程4.3.1 全连接层实验4.3.2 卷积网络上的实验 4.4 结论 小结参考文献 week29 Beyond Dropout …

【C++专栏】C++入门 | 函数重载、引用、内联函数

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;C专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ C入门 | 函数重载、引用、内联函数 文章编号&#xff1a;C入门 / 02 文…