zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    iOS"伪后台"机制下如何保持APP一直运行在后台(转)(实践通过)
    weak和strong
    iOS webview 清除缓存
    iOS隐藏状态栏
    IOS 在一个应用里打开另一个应用 及其 两个应用互相调用
    ios 检查ios设备是否安装了qq,微信等应用
    【干货篇】步步为营,带你轻松掌握jQuery!
    【化繁为简】非前端开发者的福音---CSS的预处理语言 Less&Sass
    JS中有关分支结构、循环结构以及函数应用的一些简单练习
    万物皆对象的JavaScript
  • 原文地址:https://www.cnblogs.com/chenlimei/p/12781564.html
Copyright © 2011-2022 走看看