美文网首页selenium自动化
selenium学习笔记5——鼠标事件:ActionChains

selenium学习笔记5——鼠标事件:ActionChains

作者: 满船清梦压星河ya_ | 来源:发表于2018-02-06 21:46 被阅读0次

    ActionChains 类模拟鼠标操作的常用方法。

    使用click() 方法可以模拟鼠标单击操作,但是鼠标操作还包括:右击、双击、悬停、鼠标拖动等功能。

    所以,ActionChains 类提供了鼠标操作的常用方法:

    1. perform():执行所有 ActionChains 中存储的行为。
    2. context_click():右击。
    3. double_click():双击。
    4. drag_and_drop():拖动。
    5. move_to_element():鼠标悬停。

    注意:

    1)首先需要引入 ActionChains 类。

    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    
    1. ActionChains 类提供的鼠标方法与 click() 方法的用法有所不同。具体用法如下。

    鼠标方法的使用:

    1、鼠标右击

    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains  # 引入 ActionChains 类
    
    driver = webdriver.Firefox()
    driver.get("http://yunpan.360.cn")
    #.......此处省略1W代码,哈哈哈
    
    # 定位到要右击的元素
    right_click = driver.find_element_by_id("xx")
    
    # 对定位到的元素执行鼠标右键操作
    ActionChains(driver).context_click(right_click).perform()
    
    #.......(省略其他代码)
    

    其中:

    1)ActionChains(driver)

    调用 ActionChains() 类,将浏览器驱动 driver 作为参数传入。

    2)c(right_click)

    context_click() 方法用于模拟鼠标右击操作,在调用时需要指定元素定位。

    3)perform()

    执行所有 ActionChains 中存储的行为,可以理解为是对整个操作的提交动作。

    2、鼠标悬停

    鼠标悬停.png

    move_to_element() 方法可以模拟鼠标悬停的动作,用法与 context_click() 相同。

    # ......
    
    # 定位到要悬停的元素
    
    above = driver.find_element_by_id("xx")
    
    # 对定位到的元素执行悬停操作
    
    ActionChains(driver).move_to_element(above).perform()
    
    # ......
    

    3、鼠标双击

    # ......
    
    # 定位到要双击的元素
    
    double_click = driver.find_element_by_id("xx")
    
    # 对定位到的元素执行悬停操作
    
    ActionChains(driver).double_click(double_click).perform()
    
    # ......
    

    4、鼠标拖放

    dtag_and_drop(source,target) 在源元素上按住鼠标左键,然后移动到目标元素上释放。

    两个参数:

    1. source:鼠标拖动的源元素。
    2. target:鼠标释放的目标元素。
    # ......
    
    # 定位到元素的原位置
    
    element = driver.find_element_by_id("xx")
    
    # 定位到元素要移动到的目标位置
    
    target = driver.find_element_by_id("xx")
    
    # 执行元素的拖放操作
    
    ActionChains(driver).drag_and_drop(element,target).perform()
    
    # ......
    

    相关文章

      网友评论

        本文标题:selenium学习笔记5——鼠标事件:ActionChains

        本文链接:https://www.haomeiwen.com/subject/wyenzxtx.html