python UI自动化之鼠标/键盘操作
前言
selenium提供鼠标操作的方法及步骤
1. 通过ActionChains实例化鼠标对象action=ActionChains(driver) #driver表示的是浏览器驱动对象
2. 调用鼠标的事件方法
3. 调用鼠标的执行方法 action.perform()
一.鼠标的事件方法(element表示的是元素对象)
- 右击 action.context_click(element)
- 双击 action.double_click(element)
- 拖动 action.drag_and_drop(source, target) #source表示的是源元素,被拖动的元素, target 表示是目标源,也就是要拖动到哪个元素上。
- 悬停 action.move_to_element(element) 调用鼠标单元素拖动事件方法
- 单元素拖动 action.drag_and_drop_by_offset(element, x, y) x, y 表示的元素拖动时横向和纵向移动的距离,单位为像素, 移动的像素最终要比在web页面 中看到的移动像素值要大,最好大于5个像素或者10像素
代码
#导包
import time
from selenium import webdriver
from selenium.webdriver.common.by import by
from selenium.webdriver import ActionChains
#实例化驱动器
driver = webdriver.Chrome()
driver.maximize_window()
#打开测试网站
driver.get("网站路径")
#在用户文本框上点击鼠标右键
#创建鼠标对象
action = ActionChains(driver)
#调用右击()
action.context_click(driver.find_element(By.ID,"userA"))
#调用双击,先输入用户名再调用
element = driver.find_element(By.ID,"userA")
element.send_keys("admin")
time.sleep(3)
action.double_click(element)
#调用拖拽
source = driver.find_element(By.ID,"div1")
target = driver.find_element(By.ID,"div2")
action.drag_and_drop(source, target)
#调用悬停事件方法
action.move_to_element(driver.find_element(By,ID,"userA"))
#调用单元素拖动操作
action.drag_and_drop_by_offset(element, x, y)
#模拟鼠标实现滑块验证码的操作,并调用单元素方法
element = driver.find_element(By.css_SELECTOR,".handler_bg")
action_drag_and_drop_by_offset(element,260,0)
#调用执行的方法
action.perform()
#等待3秒
time.sleep()
#退出浏览器驱动
driver.quit()



