selenium:鼠标模拟操作ActionChains

ActionChains

1.导入ActionChains包

python 复制代码
from selenium.webdriver import ActionChains
  1. 执行原理

调用ActionChains的方法时,不会立即执行,而是将所有的操作,按顺序存放在一个队列里,当你调用perform()方法时,队列中的事件会依次执行

  1. 基本用法:
  • 生成一个动作action=ActionChains(driver)
  • 动作添加方法1 action.方法1
  • 动作添加方法2 action.方法2
  • 调用perform()方法执行(action.perform())
  1. 具体写法

链式写法

  • ActionChains(driver).move_to_element(element).click(element)perform()

分布写法:

  • actions = ActionChains(driver)
  • actions.move to element(element)
  • actions.click(element)
  • actions.perform()

示例:

python 复制代码
    def test_actionchains(self):
        self.driver.get("https://www.baidu.com/")
        element = self.driver.find_element('xpath',"//*[@id='s-top-left']/a[1]")
        action = ActionChains(self.driver)
        action.click(element)
        action.perform()
  1. 不同操作对应不同的方法:
  • click(on_element=None) #单击鼠标左键
  • click_and_hold(on_element=None) #点击鼠标左键,不松开
  • context_click(on_element=None) #点击鼠标右键
  • double_click(on_element=None) #双击鼠标左键
  • drag_and_drop(source, target) #拖拽到某个元素,然后松开
  • drag_and_drop_by_offset(source, xoffset, yoffset) #拖拽到某个坐标然后松开
  • key_down(value, element=None) #按下某个键盘上的键
  • key_up(value, element=None) #松开某个键
  • move_by_offset(xoffset, yoffset) #鼠标从当前位置移动到某个坐标
  • move_to_element(to_element) #鼠标移动到某个元素
  • move_to_element_with_offset(to_element, xoffset, yoffset) #移动到距某个元素多少距离的位置
  • perform() # 执行
  • release(on_element=None) #在某个元素位置松开鼠标左键
  • send_keys(*keys_to_send) #发送某个键到当前焦点的元素
  • send_keys_to_element(element, *keys_to_send) #发送某个键到指定元素

示例

python 复制代码
class TestClick:

    def setup(self):
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()
        self.driver.implicitly_wait(3)#隐式等待
        self.driver.get('https://ip:port/')

    def test_click(self):
        e = self.driver.find_element(by='xpath',value='//*[@id="root"]/main/div[2]/div[4]/div[2]/div[1]/div/div[1]/div[2]/span')
        ActionChains(self.driver).move_to_element(e).click(e).perform()
相关推荐
代码欢乐豆20 分钟前
数据采集之selenium模拟登录
python·selenium·测试工具
测试杂货铺3 小时前
外包干了2年,快要废了。。
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
小码哥说测试5 小时前
接口测试用例设计的关键步骤与技巧解析!
自动化测试·测试工具·jmeter·职场和发展·测试用例·接口测试·postman
小白学大数据12 小时前
正则表达式在Kotlin中的应用:提取图片链接
开发语言·python·selenium·正则表达式·kotlin
awonw20 小时前
[java][框架]springMVC(1/2)
测试工具·postman
迃幵chen1 天前
wireshark-网络分析工具
网络·测试工具·wireshark
孤蓬&听雨1 天前
RabbitMQ自动发送消息工具(自动化测试RabbitMQ)
分布式·测试工具·自动化·rabbitmq·自动发送消息
土小帽软件测试1 天前
jmeter基础01-2_环境准备-Mac系统安装jdk
java·测试工具·jmeter·macos·软件测试学习
qq_433716951 天前
测试分层:减少对全链路回归依赖的探索!
自动化测试·软件测试·功能测试·测试工具·回归·pytest·postman
qq_433716951 天前
Postman断言与依赖接口测试详解!
自动化测试·软件测试·功能测试·测试工具·mysql·接口测试·postman