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()


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM