selenium(四)鼠标操作

该篇博客详细介绍了如何利用Selenium的ActionChains模块进行各种鼠标操作,包括右键点击、双击、拖放、悬停以及滑动块验证的处理。通过实例展示了在网页上实现这些操作的步骤,例如在注册页面模拟用户行为,如输入昵称、拖动滑块验证等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

selenium 提供的鼠标操作的方法

首先导入相关包:
from selenium.webdriver import ActionChains

需要先实例化鼠标对象:
action = ActionChains(driver)

操作方法:
1.context_click(element)------右键

2.double_click(element)-------双击

3.drag_and_drop(source,target)-------鼠标拖动source,target都是元素

4.move_to_element(element)------悬停

5.perform()--------执行,用来执行以上所有鼠标操作
import time
from selenium import webdriver
from selenium.webdriver import ActionChains

"""
获取网站第一个超链接文本内容及超链接地址
"""
driver = webdriver.Chrome()
# driver.get("https://www.jianshu.com/sign_up")
# 实例化鼠标对象
action = ActionChains(driver)

mark = driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[2]/div/form/div[2]/input[2]")
action.context_click(mark)
# 找到昵称输入框并输入文本admin
nickname = driver.find_element_by_id("user_nickname")
nickname.send_keys("admin")
# 双击选中admin
action.double_click(nickname)
time.sleep(3)
source = driver.find_element_by_link_text("登录")
target = driver.find_element_by_xpath('//*[@type="password"]')
# 拖拽登录按钮到密码输入框
action.drag_and_drop(source,target)
# 在下载二维码图片上悬停查看二维码
mark1 = driver.find_element_by_xpath("//body/div/div[2]/div[1]/div[1]")
action.move_to_element(mark1)
time.sleep(3)
action.perform()
driver.quit()

6.鼠标单元素拖动,主要应用于滑动块形式的验证码操作
拖动事件方法:action.drag_and_drop_by_offset(element,x,y)
x,y表示单元素横向与纵向移动的距离,单位为像素
import time
from selenium import webdriver
from selenium.webdriver import ActionChains


driver = webdriver.Chrome()

# 实例化鼠标对象
action = ActionChains(driver)
driver.get("https://reg.jd.com/p/regPage?ignore=1")
driver.maximize_window()
# 实例化鼠标对象
action = ActionChains(driver)
# 同意用户协议
driver.find_element_by_xpath("//div[2]/button").click()
# 在手机号码输入框输入手机号码
driver.find_element_by_id("form-phone").send_keys("13800000000")
time.sleep(3)
# 点击验证码按钮
driver.find_element_by_xpath('//*[@clstag="pageclick|keycount|reg_puser_201804031|7"]').click()
time.sleep(5)
# 找到滑块元素
mark2 = driver.find_element_by_css_selector('[class="JDJRV-slide-inner JDJRV-slide-btn"]')
# 滑动滑块
action.drag_and_drop_by_offset(mark2,180,0)
time.sleep(3)
# 执行鼠标操作
action.perform()
driver.quit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值