selenium2 行為鏈

2022-02-26 10:33 更新
class selenium.webdriver.common.action_chains.ActionChains(driver)

?ActionChains?可以完成簡(jiǎn)單的交互行為,例如鼠標(biāo)移動(dòng),鼠標(biāo)點(diǎn)擊事件,鍵盤(pán)輸入,以及內(nèi)容菜單交互。這對(duì)于模擬那些復(fù)雜的類似于鼠標(biāo)懸停和拖拽行為很有用

產(chǎn)生用戶行為

當(dāng)你在?ActionChains?對(duì)象上調(diào)用行為方法時(shí),這些行為會(huì)存儲(chǔ)在?ActionChains?對(duì)象的一個(gè)隊(duì)列里。調(diào)用?perform()?時(shí),這些動(dòng)作就以他們隊(duì)列的順序來(lái)觸發(fā)。

?ActionChains?可以使用鏈?zhǔn)侥P?

menu = driver.find_element_by_css_selector(".nav")
hidden_submenu = driver.find_element_by_css_selector(".nav #submenu1")

ActionChains(driver).move_to_element(menu).click(hidden_submenu).perform()

或者也可以一個(gè)個(gè)排隊(duì),然后執(zhí)行:

menu = driver.find_element_by_css_selector(".nav")
hidden_submenu = driver.find_element_by_css_selector(".nav #submenu1")

actions = ActionChains(driver)
actions.move_to_element(menu)
actions.click(hidden_submenu)
action.perform()

不管怎樣,這些動(dòng)作總是一個(gè)接一個(gè)按他們被調(diào)用的順序執(zhí)行。


click(on_element=None)

點(diǎn)擊一個(gè)元素。

參數(shù): ?on_element:?要點(diǎn)擊的元素,如果是?None?,點(diǎn)擊鼠標(biāo)當(dāng)前的位置。


click_and_hold(on_element=None)

鼠標(biāo)左鍵點(diǎn)擊一個(gè)元素并且保持。

參數(shù): on_element:?同?click()?類似。


double_click(on_element=None)

雙擊一個(gè)元素。

參數(shù): ?on_element:?同?click()?類似。


drag_and_drop(source, target)

鼠標(biāo)左鍵點(diǎn)擊?source?元素,然后移動(dòng)到?target?元素釋放鼠標(biāo)按鍵。

參數(shù): ?source?:鼠標(biāo)點(diǎn)擊的元素 ?target?:鼠標(biāo)松開(kāi)的元素。


drag_and_drop_by_offset(source, xoffset,yoffset)

拖拽目標(biāo)元素到指定的偏移點(diǎn)釋放。

參數(shù): ?source?:點(diǎn)擊的參數(shù) ?xoffset:X?偏移量?yoffset:Y?偏移量。


key_down(value,element=None)

只按下鍵盤(pán),不釋放。我們應(yīng)該只對(duì)那些功能鍵使用(?Ctrl,?,?Alt?,?Shift?)。

參數(shù): ?value?:要發(fā)送的鍵,值在?Keys?類里有定義 ?element?:發(fā)送的目標(biāo)元素,如果是?None?,?value?會(huì)發(fā)到當(dāng)前聚焦的元素上。

例如,我們要按下 ?ctrl+c?:

ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()


key_up(value,element=None)

釋放鍵。參考?key_down?的解釋。


move_by_offset(xoffset,yoffset)

將當(dāng)前鼠標(biāo)的位置進(jìn)行移動(dòng)。

參數(shù): ?xoffset?:要移動(dòng)的X偏移量,可以是正也可以是負(fù) ?yoffset?:要移動(dòng)的Y偏移量,可以是正也可以是負(fù)。


move_to_element(to_element)

把鼠標(biāo)移到一個(gè)元素的中間。

參數(shù):?to_element?:目標(biāo)元素。


move_to_element_with_offset(to_element,xoffset,yoffset)

鼠標(biāo)移動(dòng)到元素的指定位置,偏移量以元素的左上角為基準(zhǔn)。

參數(shù):? to_element?:目標(biāo)元素 ?xoffset?:要移動(dòng)的X偏移量  ?yoffset?:要移動(dòng)的Y偏移量。


perform()

執(zhí)行所有存儲(chǔ)的動(dòng)作。


release(on_element=None)

釋放一個(gè)元素上的鼠標(biāo)按鍵。

參數(shù):? on_element?:如果為?None?,在當(dāng)前鼠標(biāo)位置上釋放。


send_keys(keys_to_send)

向當(dāng)前的焦點(diǎn)元素發(fā)送鍵。

參數(shù): ?keys_to_send?:要發(fā)送的鍵,修飾鍵可以到?Keys?類里找到。


send_keys_to_element(element,keys_to_send)

向指定的元素發(fā)送鍵。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)