Python+Selenium自动化 模拟鼠标操作
在webdriver中,鼠标的一些操作如:双击、右击、悬停、拖动等都被封装在ActionChains类中,我们只用在需要使用的时候,导入这个类就可以了。
0.ActionChains类提供的鼠标常用方法:
- perform():执行所有 ActionChains 中存储的行为。
- context_click():右击
- double_click():双击
- drag_and_drop():拖到
- move_to_element():鼠标悬停
注意:
- 使用之前需要引入 ActionChains 类。
from selenium.webdriver.common.action_chains import ActionChains
鼠标右击实例
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains # 引入 ActionChains 类
browser = webdriver.Chrome()
browser.get('https://www.baidu.com')
# 定位到要右击的元素
right_click = browser.find_element_by_link_text('新闻')
# 对定位到的元素执行鼠标右键操作
#ActionChains(driver):调用ActionChains()类,并将浏览器驱动browser作为参数传入
#context_click(right_click):模拟鼠标双击,需要传入指定元素定位作为参数
#perform():执行ActionChains()中储存的所有操作,可以看做是执行之前一系列的操作
try:
ActionChains(browser).context_click(right_click).perform()
print('成功右击')
except Exception as e:
print('fail')
#输出内容:成功双击
注意:
- ActionChains(driver):调用ActionChains()类,并将浏览器驱动browser作为参数传入
- context_click(right_click):模拟鼠标双击,需要传入指定元素定位作为参数
- perform():执行ActionChains()中储存的所有操作,可以看做是执行之前一系列的操作
1.鼠标右击
- context_click():右击
# 鼠标右击
# 定位到要右击的元素
right_click = browser.find_element_by_id("xx")
# 对定位到的元素执行右击操作
ActionChains(browser).move_to_element(right_click ).perform()
2.鼠标双击
- double_click():双击
# 定位到要右击的元素
double_click = browser.find_element_by_id('xx')
# 对定位到的元素执行鼠标右键操作
ActionChains(browser).context_click(double_click).perform()
3.鼠标拖动
- drag_and_drop(source,target):拖动
- source:开始位置;需要拖动的元素
- target:结束位置;拖到后需要放置的目的地元素
# 开始位置:定位到元素的原位置
source = driver.find_element_by_id("xx")
# 结束位置:定位到元素要移动到的目标位置
target = driver.find_element_by_id("xx")
# 执行元素的拖放操作
ActionChains(driver).drag_and_drop(source,target).perform()
4.鼠标悬停
- move_to_element():鼠标悬停
# 定位到要悬停的元素
move = driver.find_element_by_id("xx")
# 对定位到的元素执行悬停操作
ActionChains(driver).move_to_element(move).perform()
html的基本结构
html的介绍
SimpleDateFormat
线程池
写XML
在解析XML时要注意解析元素和解析标签属性的区别
9月2日笔记
eclipse快捷提示原理
form表单提交信息的方式
- 最新文章
-
poj 3617 Best Cow Line
问题:今天测试模块一直出现一个问题?module 'subprocess' has no attribute 'Popen'
一些blog地址总结整理:
网络编程遇到的一个错误?
网络编程3 网络编程之缓冲区&subprocess&粘包&粘包解决方案
超哥带你学网络编程部分blog
CMD命令获取电脑所有连接过的WiFi密码
怎样查看电脑登录过的wifi密码?
小米4s经常断网
__getitem__
- 热门文章
-
网络编程2 网络编程之osi七层协议 tcp&udp
添物零基础到大型全栈架构师 不花钱学计算机及编程(预备篇)— C语言编程基础
添物零基础到大型全栈架构师 不花钱学计算机及编程(预备篇)- 计算机基础
添物零基础到大型全栈架构师 移动和服务端架构完整(全栈篇)- 概述
添物零基础到大型全栈架构师 服务器架构及实战(架构篇)- 概述
Android NumberProgressBar:动态移动显示百分比进度的进度条
55. spring boot 服务配置和部署【从零开始学Spring Boot】
54. spring boot日志升级篇—logback【从零开始学Spring Boot】
53. spring boot系列合集【从零开始学Spring Boot】
52. spring boot日志升级篇—log4j多环境不同日志级别的控制【从零开始学Spring Boot】