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