1. 程式人生 > >WebDriver滑鼠、鍵盤操作

WebDriver滑鼠、鍵盤操作

1. 滑鼠事件

說明:WebDriver庫對模擬滑鼠操作封裝的一些方法,此知識點作為了解

WebDriver操作滑鼠方法

說明:在WebDriver中將操作滑鼠的方法封裝在ActionChains類中

1. context_click()            右擊 --> 此方法模擬滑鼠右鍵點選效果
2. double_click()            雙擊 --> 此方法模擬雙標雙擊效果
3. drag_and_drop()            拖動 --> 此方法模擬雙標拖動效果
4. move_to_element()        懸停 --> 此方法模擬滑鼠懸停效果
5. perform()                執行 --> 此方法用來執行以上所有滑鼠方法

滑鼠執行-perform()

說明:在ActionChains類中所有提供的滑鼠事件方法,在呼叫的時候所有的行為都儲存在ActionChains類中,
      而perform()方法就是執行所有ActionChains中的行為

提示:必須呼叫perform()方法才能執行滑鼠事件

程式碼實現關鍵點分析

1. 導包:from selenium.webdriver.common.action_chains import ActionChains
2. 例項化ActionChains物件:Action=ActionChains(driver)
3. 呼叫右鍵方法:element=Action.context_click(username)
4. 執行:element.perform()

滑鼠雙擊-double_click()

程式碼實現關鍵點分析

1. 導包...
2. 例項化...
3. 呼叫雙擊方法:element=Action.double_click(username)
4. 執行...

 滑鼠拖動-drag_and_drop()

說明:模擬滑鼠拖動動作,選定拖動源元素釋放到目標元素

拖動關鍵點分析

1. 源元素   socure=driver.find_element_by_id(xxx)
2. 目標元素 target=driver.find_element_by_id(xxx)
3. 呼叫方法 Action.drag_and_drop(source,target).perform()

 滑鼠懸停-move_to_element()

程式碼實現關鍵點分析

1. 導包...
2. 例項化...
3. 呼叫懸停方法:Action.move_to_element(element).perform()

 

2. 鍵盤操作

說明:
    1). 模擬鍵盤上一些按鍵或者組合鍵的輸入 如:Ctrl+C 、Ctrl+V;
    2). WebDriver中對鍵盤的操作都封裝在Keys類中

2.1 Keys類

導包:from selenium.webdriver.common.keys import Keys

2.2 常用的鍵盤操作

1. send_keys(Keys.BACK_SPACE)刪除鍵(BackSpace) 
2. send_keys(Keys.SPACE)空格鍵(Space) 
3. send_keys(Keys.TAB)製表鍵(Tab) 
4. send_keys(Keys.ESCAPE)回退鍵(Esc) 
5. send_keys(Keys.ENTER)回車鍵(Enter) 
6. send_keys(Keys.CONTROL,'a') 全選(Ctrl+A) 
7. send_keys(Keys.CONTROL,'c')複製(Ctrl+C)

提示:以上方法就不一個一個講解了,因為呼叫方法都一樣;

2.3 案例-1 註冊頁面A

需求:
    1). 輸入使用者名稱:admin1,暫停2秒 刪除1
    2). 全選使用者名稱:admin      暫停2秒
    3). 複製使用者名稱:admin      暫停2秒
    4). 貼上到密碼框          暫停2秒
    5). 關閉瀏覽器

2.4 案例-1 方法示例

# 定位使用者名稱
element=driver.find_element_by_id("userA")
# 輸入使用者名稱
element.send_keys("admin1")
# 刪除1
element.send_keys(Keys.BACK_SPACE)
# 全選
element.send_keys(Keys.CONTROL,'a')
# 複製
element.send_keys(Keys.CONTROL,'c')
# 貼上
driver.find_element_by_id('passwordA').send_keys(Keys.CONTROL,'v')