一 前言python
開展WEB UI自動化的核心思路,無非就是找到元素,而後操做元素這兩個內容。在python selenium系列(二)元素定位方式一文中,已經介紹瞭如何找到元素這項技能,本文將介紹第二項內容,即如何操做已經找到的元素。web
二 操做方法分類瀏覽器
整體來講,能夠將操做大致分紅四類,即瀏覽器操做、鍵盤操做、鼠標操做、js腳本。ide
1. 瀏覽器經常使用操做方法:spa
方法3d |
描述orm |
driver.maximize_window()視頻 |
窗口最大化blog |
driver.back()隊列 |
頁面返回 |
driver.forward() |
頁面前進 |
2. 鍵盤經常使用操做方法:
send_keys() # Keys 模擬鍵盤輸入;模擬鍵盤按鍵、組合鍵等
部分key 列舉以下:
ALT= u'\ue00a'
ARROW_DOWN= u'\ue015'
ARROW_LEFT= u'\ue012'
ARROW_RIGHT= u'\ue014'
ARROW_UP= u'\ue013'
BACKSPACE= u'\ue003'
BACK_SPACE= u'\ue003'
CANCEL= u'\ue001'
CLEAR= u'\ue005'
COMMAND= u'\ue03d'
CONTROL= u'\ue009'
3. 鼠標經常使用操做方法:
click() # ActionChains 模擬鼠標操做,除了最經常使用的點擊,還有右擊、雙擊等
方法 |
描述 |
click(on_element=None) |
單擊鼠標左鍵 |
click_and_hold(on_element=None) |
點擊鼠標左鍵,不鬆開 |
context_click(on_element=None) |
點擊鼠標右鍵 |
double_click(on_element=None) |
雙擊鼠標左鍵 |
drag_and_drop(source, target) |
拖拽到某個元素而後鬆開 |
drag_and_drop_by_offset(source,xoffset,yoffset) |
拖拽到某個座標而後鬆開 |
key_down(value, element=None) |
按下某個鍵盤上的鍵 |
key_up(value, element=None) |
鬆開某個鍵 |
move_by_offset(xoffset, yoffset) |
鼠標從當前位置移動到某個座標 |
move_to_element(to_element) |
鼠標移動到某個元素 |
move_to_element_with_offset(to_element, xoffset, yoffset) |
移動到距某個元素(左上角座標)多少距離的位置 |
perform() |
執行鏈中的全部動做 |
release(on_element=None) |
在某個元素位置鬆開鼠標左鍵 |
send_keys(*keys_to_send) |
發送某個鍵到當前焦點的元素 |
send_keys_to_element(element, *keys_to_send) |
發送某個鍵到指定元素 |
4. 調用js腳本:
execute_script #執行js腳本完成特定操做
三 操做實戰舉例
1. 瀏覽器操做實例
2. 鍵盤操做實例
3. 鼠標操做實例
4. 腳本操做實例
四 額外知識點補充
ActionChains(browser).double_click(click_button).perform() #鼠標雙擊操做舉例
在鼠標操做中,注意到ActionChains(driver).method,當調用該方法時,動做不會當即被執行,而是會將全部的操做按順序存放在一個隊列裏,當調用perform()方法時,隊列中的時間會依次執行,因此使用鼠標操做時,最後須要調用perform()方法完成動做的執行。
五 其餘資源
關於python selenium元素經常使用操做方法的視頻講解,請參看:http://i.youku.com/weiworld521 第 26節。