zoukankan      html  css  js  c++  java
  • selenium常用操作之鼠标操作

    selenium自动化中,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而selenium给我们提供了一个类来处理这类事件——ActionChains。

    主要操作流程:

    1.存储鼠标来操作;

    2.perform()来执行鼠标操作。

    示例如下:

    from selenium.webdriver.common.action_chains import ActionChains
    #1.实例化鼠标类
    ac=ActionChains(driver)
    #2.调用各种鼠标行为后,调用perform()来执行
    ac.move_to_element_with_offset(driver.find_element_by_xpath('//div[@id="u"]/*[@name="tj_login"]')).perform()
    

      

    ActionChains类鼠标操作的常用方法

    • context_click()  右击
    • double_click()  双击
    • drag_and_drop()  拖动
    • move_to_element()  鼠标悬浮在一个元素上
    • click_and_hold()  按下鼠标左键在一个元素上不松开

    在使用ActionChains类下面的方法之前,需要先引入ActionChains类

    from selenium.webdriver.common.action_chains import ActionChains 

    AC。方法名1()……方法名n().perform()

    这里需要注意的是:ActionChains(driver),
                                driver:webdriver实例执行用户操作。
                                ActionChains用于生产用户的行为,所有的行为都存储在actionchains对象上,再通过perform()执行所有ActionChains中存储的行为。
                                perform()同样也是ActionChains类提供的方法,通常与ActionChains()配合使用。


    鼠标右击context_click()操作

    #定位到要右击的元素
    right =driver.find_element_by_xpath("xx")
    
    #对定位到的元素执行鼠标右键操作
    ActionChains(driver).context_click(right).perform() 


    鼠标双击double_click()操作

    #定位到要双击的元素
    double =driver.find_element_by_xpath("xxx") 
    
     #对定位到的元素执行鼠标双击操作 
    ActionChains(driver).double_click(double).perform() 


    鼠标拖放drag_and_drop()操作

    复制代码
    复制代码
    #定位元素的原位置 
    element = driver.find_element_by_name("xxx")
    
    #定位元素要移动到的目标位置 
    target = driver.find_element_by_name("xxx")
    
    #执行元素的移动操作 
    ActionChains(driver).drag_and_drop(element, target).perform()
    复制代码
    复制代码

    鼠标悬浮在一个元素上move_to_element()

    #定位鼠标需要悬浮的元素
    ele= driver.find_element_by_id('i1')
    
    #执行鼠标操作
    ActionChains(driver).move_to_element(ele).perform()
  • 相关阅读:
    深入剖析.NET运行机制
    在浏览器地址中加参数
    mysql 中文乱码
    今天在看一些面试题的时候遇到的一个关于strcmp()返回值的细节问题
    如何在学习过程中统一IDE的编码!
    通过文件方式,在文件内容开头写入字符串!
    Java编写圆的相关计算
    leetcode 上的Counting Bits 总结
    cocos2dx打包apk
    CEGUI0.8.4例子
  • 原文地址:https://www.cnblogs.com/123blog/p/12482541.html
Copyright © 2011-2022 走看看