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()