一 前言
成都創(chuàng)新互聯(lián)專注于佛坪企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),成都做商城網(wǎng)站。佛坪網(wǎng)站建設(shè)公司,為佛坪等地區(qū)提供建站服務(wù)。全流程按需開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)開展WEB UI自動(dòng)化的核心思路,無(wú)非就是找到元素,然后操作元素這兩個(gè)內(nèi)容。在python selenium系列(二)元素定位方式一文中,已經(jīng)介紹了如何找到元素這項(xiàng)技能,本文將介紹第二項(xiàng)內(nèi)容,即如何操作已經(jīng)找到的元素。
二 操作方法分類
總體來(lái)說(shuō),可以將操作大體分成四類,即瀏覽器操作、鍵盤操作、鼠標(biāo)操作、js腳本。
1. 瀏覽器常用操作方法:
方法 | 描述 |
driver.maximize_window() | 窗口大化 |
driver.back() | 頁(yè)面返回 |
driver.forward() | 頁(yè)面前進(jìn) |
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. 鼠標(biāo)常用操作方法:
click() # ActionChains模擬鼠標(biāo)操作,除了最常用的點(diǎn)擊,還有右擊、雙擊等
方法 | 描述 |
click(on_element=None) | 單擊鼠標(biāo)左鍵 |
click_and_hold(on_element=None) | 點(diǎn)擊鼠標(biāo)左鍵,不松開 |
context_click(on_element=None) | 點(diǎn)擊鼠標(biāo)右鍵 |
double_click(on_element=None) | 雙擊鼠標(biāo)左鍵 |
drag_and_drop(source, target) | 拖拽到某個(gè)元素然后松開 |
drag_and_drop_by_offset(source,xoffset,yoffset) | 拖拽到某個(gè)坐標(biāo)然后松開 |
key_down(value, element=None) | 按下某個(gè)鍵盤上的鍵 |
key_up(value, element=None) | 松開某個(gè)鍵 |
move_by_offset(xoffset, yoffset) | 鼠標(biāo)從當(dāng)前位置移動(dòng)到某個(gè)坐標(biāo) |
move_to_element(to_element) | 鼠標(biāo)移動(dòng)到某個(gè)元素 |
move_to_element_with_offset(to_element, xoffset, yoffset) | 移動(dòng)到距某個(gè)元素(左上角坐標(biāo))多少距離的位置 |
perform() | 執(zhí)行鏈中的所有動(dòng)作 |
release(on_element=None) | 在某個(gè)元素位置松開鼠標(biāo)左鍵 |
send_keys(*keys_to_send) | 發(fā)送某個(gè)鍵到當(dāng)前焦點(diǎn)的元素 |
send_keys_to_element(element, *keys_to_send) | 發(fā)送某個(gè)鍵到指定元素 |
4. 調(diào)用js腳本:
execute_script #執(zhí)行js腳本完成特定操作
三 操作實(shí)戰(zhàn)舉例
1. 瀏覽器操作實(shí)例
2. 鍵盤操作實(shí)例
3. 鼠標(biāo)操作實(shí)例
4. 腳本操作實(shí)例
四 額外知識(shí)點(diǎn)補(bǔ)充
ActionChains(browser).double_click(click_button).perform() #鼠標(biāo)雙擊操作舉例
在鼠標(biāo)操作中,注意到ActionChains(driver).method,當(dāng)調(diào)用該方法時(shí),動(dòng)作不會(huì)立即被執(zhí)行,而是會(huì)將所有的操作按順序存放在一個(gè)隊(duì)列里,當(dāng)調(diào)用perform()方法時(shí),隊(duì)列中的時(shí)間會(huì)依次執(zhí)行,所以使用鼠標(biāo)操作時(shí),最后需要調(diào)用perform()方法完成動(dòng)作的執(zhí)行。
五 其他資源
關(guān)于python selenium元素常用操作方法的視頻講解,請(qǐng)參看:http://i.youku.com/weiworld521 第 26節(jié)。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。