• Python+Selenium--鼠标事件


    场景

    前景讲解了鼠标的click()事件,而我们在实际的web产品测试中,有关鼠标的操作,不仅仅只有单击,有时候还包括右击,双击,拖动等操作,这些操作包含在ActionChains类中。

          ActionChains类鼠标操作的常用方法:

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

    鼠标事件

    1.鼠标右击事件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #!/usr/bin/env python
    # -*- codinfg:utf-8 -*-
    '''
    @author: Jeff LEE
    @file: 鼠标事件.py
    @time: 2020-02-13 14:14
    @desc:
    '''
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium import webdriver
    import time
     
    driver = webdriver.Firefox()
     
    driver.get('https://www.baidu.com/')
     
    #定位需要右击元素
    right = driver.find_element_by_id("kw")
    #对定位对象进行右击操作
    ActionChains(driver).context_click(right).perform()
     
    time.sleep(2)
    driver.quit()

      ActionChains用于生成用户的行为;所有的行为都存储在actionchains对象,通过perform()执行存储的行为

       perform()执行所有ActionChains存储的行为,perform()同样也是ActionChains类提供的方法,通常他们配合使用

    2.鼠标双击事件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #!/usr/bin/env python
    # -*- codinfg:utf-8 -*-
    '''
    @author: Jeff LEE
    @file: 鼠标事件.py
    @time: 2020-02-13 14:14
    @desc:
    '''
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium import webdriver
    import time
     
    driver = webdriver.Firefox()
     
    driver.get('https://www.baidu.com/')
     
    #定位需要双击元素
    double = driver.find_element_by_id("kw")
    #对定位对象进行双击击操作
    ActionChains(driver).double_click(double).perform()
     
    time.sleep(2)
    driver.quit()

      对于操作系统的操作来说,双击使用比较频繁,带对于web而言,比较少

    3.鼠标拖放操作

    drag_and_drop(source,target)

    在源元素上按下鼠标,然后移动到目标元素释放

    source:鼠标按下的源元素

    target:鼠标释放的目的元素

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #!/usr/bin/env python
    # -*- codinfg:utf-8 -*-
    '''
    @author: Jeff LEE
    @file: 鼠标事件.py
    @time: 2020-02-13 14:14
    @desc:
    '''
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium import webdriver
    import time
     
    driver = webdriver.Firefox()
     
    driver.get('https://www.baidu.com/')
     
    #定位源元素
    source = driver.find_element_by_id("xx")
    #定位目的元素
    target = driver.find_element_by_id("xx")
    #执行移动操作
    ActionChains(driver).drag_and_drop(source,target).perform()
     
    time.sleep(2)
    driver.quit()

    4.移动鼠标到元素上

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #!/usr/bin/env python
    # -*- codinfg:utf-8 -*-
    '''
    @author: Jeff LEE
    @file: 鼠标事件.py
    @time: 2020-02-13 14:14
    @desc:
    '''
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium import webdriver
    import time
     
    driver = webdriver.Firefox()
     
    driver.get('https://www.baidu.com/')
     
    #定位元素
    above = driver.find_element_by_id("xx")
    #执行移动操作
    ActionChains(driver).move_to_element(above).perform()
     
    time.sleep(2)
    driver.quit()

    5.按下鼠标左键不松开

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #!/usr/bin/env python
    # -*- codinfg:utf-8 -*-
    '''
    @author: Jeff LEE
    @file: 鼠标事件.py
    @time: 2020-02-13 14:14
    @desc:
    '''
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium import webdriver
    import time
     
    driver = webdriver.Firefox()
     
    driver.get('https://www.baidu.com/')
     
    #定位元素
    aa=driver.find_element_by_id("su")
    #执行点击元素不松开
    ActionChains(driver).click_and_hold(aa).perform()
     
    time.sleep(2)
    driver.quit()
  • 相关阅读:
    Entity Framework Code-First(17):Database Initialization Strategy
    Entity Framework Code-First(16):Move Configurations
    Entity Framework Code-First(15):Cascade Delete
    Entity Framework Code-First(14):From Existing DB
    Entity Framework Code-First(13):Configure Many-to-Many
    Entity Framework Code-First(12):Configure One-to-Many
    JAVA-初步认识-第六章-封装思想
    JAVA-初步认识-第六章-封装代码示例
    JAVA-初步认识-第六章-引用数据类型参数传递图解
    JAVA-初步认识-第六章-基本数据类型参数传递图解
  • 原文地址:https://www.cnblogs.com/chenlimei/p/12781564.html
Copyright © 2020-2023  润新知