selenium:鼠标模拟操作ActionChains

ActionChains

1.导入ActionChains包

from selenium.webdriver import ActionChains


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

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

4. 具体写法
链式写法

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

分布写法:

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

示例:

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

5. 不同操作对应不同的方法:

  • 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)  #发送某个键到指定元素

示例

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值