• Selenium之Action Chains类


    https://www.cnblogs.com/cnkai/p/7538267.html

    Selenium之Action Chains类

     

    Action Chains类常用于模拟鼠标的行为,比如单击,双击,拖拽等行为,使用下面的方法导入Action Chains类

    from selenium.webdriver.common.action_chains import ActionChains

    下面先来看一个例子:

    import time
    from selenium import webdriver
    from selenium.webdriver import ActionChains
    
    browser =webdriver.Firefox()
    browser.get('http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')
    browser.switch_to.frame('iframeResult')                          # id = 'iframeResult'
    source = browser.find_element_by_css_selector('#draggable')      # 被拖拽的对象
    target = browser.find_element_by_css_selector('#droppable')      # 目标对象
    actions = ActionChains(browser)
    actions.drag_and_drop(source, target)
    actions.perform()
    time.sleep(3)
    browser.close()

    以上的例子中,实现了鼠标的拖拽操作,首先需要实例化,然后调用其中的方法,完成相应的操作。

    下面是一些常用的模拟鼠标的操作

    • 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)
      按住某个键,使用这个方法可以方便的实现某些快捷键,比如下面按下Ctrl+c键

      ActionsChains(browser).key_down(Keys.CONTROL).send_keys('c').perform()
    • key_up(value, element=None)
      松开某个键,可以配合上面的方法实现按下Ctrl+c并且释放。

      ActionsChains(browser).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()
    • move_by_offset(xoffset, yoffset)
      指定鼠标移动到某一个位置,需要给出两个坐标位置
    • move_to_element(to_element)
      将鼠标移动到指定的某个元素的位置
    • move_to_element_with_offset(to_element, xoffset, yoffset)
      移动鼠标到某个元素位置的偏移位置
    • perform()
      将之前的一系列的ActionChains执行
    • release(on_element=None)
      释放按下的鼠标
    • send_keys(*keys_to_send)
      向某个元素位置输入值
    • send_keys_to_element(element, *keys_to_send)
      向指定的元素输入数据

  • 相关阅读:
    Windows消息初探(1)
    配置Git Extension免密码发布代码到CSDN
    一个简单的参数校验类
    Functions类,一个Javascript的函数加法类,将两个函数加起来,顺序执行
    对Javascript异步执行的理解
    aws在线技术峰会笔记-游戏解决方案
    aws在线技术峰会笔记-主会场
    努力成长为一只全栈工程师
    翻译:在Ubuntu 14.04上安装FTP服务器的方法
    奇妙的时间旅程
  • 原文地址:https://www.cnblogs.com/Reclouds-shangri-la/p/11474764.html
Copyright © 2020-2023  润新知