国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

selenium自動(dòng)化測試入門 —— 鍵盤鼠標(biāo)事件ActionChains

這篇具有很好參考價(jià)值的文章主要介紹了selenium自動(dòng)化測試入門 —— 鍵盤鼠標(biāo)事件ActionChains。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在使用 Selenium WebDriver 做自動(dòng)化測試的時(shí)候,會(huì)經(jīng)常模擬鼠標(biāo)和鍵盤的一些行為。比如使用鼠標(biāo)單擊、雙擊、右擊、拖拽等動(dòng)作;或者鍵盤輸入、快捷鍵使用、組合鍵使用等模擬鍵盤的操作。在 WebDeriver 中,有一個(gè)專門的類來負(fù)責(zé)實(shí)現(xiàn)這些測試場景,那就是 ActionChains類,在使用該類做鍵盤操作的過程中會(huì)配合使用到 Keys 數(shù)據(jù)存儲(chǔ)類,Keys包含鍵盤上所有特殊按鍵。

一、鼠標(biāo)點(diǎn)擊操作

click(element=None) 左擊
context_click(element=None) 右擊
double_click(element=None) 雙擊
move_to_element(element) 移動(dòng)鼠標(biāo)到元素中間(懸停)
drag_and_drop(source,target) source上按下左鍵拖動(dòng)到target元素上
click_and_hold(element=None) 在元素上按下鼠標(biāo)左鍵
release() 釋放鼠標(biāo)
perform() 執(zhí)行ActionChains中存儲(chǔ)的動(dòng)作

element有None默認(rèn)值的表示不傳入?yún)?shù)該動(dòng)作在原地執(zhí)行。

鼠標(biāo)事件具體使用示例如下:

示例1:鼠標(biāo)左鍵點(diǎn)擊

action=ActionChains(driver)
action.click() # 在鼠標(biāo)當(dāng)前位置單擊
action.perform() # 執(zhí)行action存儲(chǔ)的動(dòng)作

# 鼠標(biāo)在 '新聞' 元素位置單擊
action.click(driver.find_element_by_link_text('新聞')).perform()  

注意:action.click() 動(dòng)作并未執(zhí)行,它只是存儲(chǔ)在action實(shí)例中,需要通過action.perform()方法執(zhí)行存儲(chǔ)動(dòng)作;鼠標(biāo)鍵盤事件動(dòng)作動(dòng)作可以存儲(chǔ)多個(gè),然后一次性執(zhí)行。如下執(zhí)行Cytl+C:

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

示例2:鼠標(biāo)右擊

action=ActionChains(driver)
action.context_click().perform() # 在鼠標(biāo)當(dāng)前位置右擊

# 鼠標(biāo)在 '新聞' 元素位置右擊
action.context_click(driver.find_element_by_link_text('新聞')).perform()

示例3:鼠標(biāo)雙擊操作

action=ActionChains(driver)
action.double_click().perform() # 在鼠標(biāo)當(dāng)前位置雙擊

# 鼠標(biāo)在 '新聞' 元素位置雙擊擊
action.double_click(driver.find_element_by_link_text('新聞')).perform()

示例4:鼠標(biāo)移動(dòng)

action = ActionChains(driver)
element=driver.find_element_by_link_text('設(shè)置')
# 鼠標(biāo)移動(dòng)到 '新聞' 元素上的中心點(diǎn)
action.move_to_element(element).perform()

# 鼠標(biāo)在原位置向x軸移動(dòng)xoffset、y軸移動(dòng)yoffset;xoffset、yoffset可為正負(fù)數(shù)
action.move_by_offset(-200,100).perform()

# 鼠標(biāo)移動(dòng)到element元素中心點(diǎn)偏移xoffset、yoffset
action.move_to_element_with_offset(element,-500,600).perform()

action.move_by_offset(xoffset,yoffset) 這里需要注意,如果 xoffset 為負(fù)數(shù),表示橫坐標(biāo)向左移動(dòng),yoffset 為負(fù)數(shù)表示縱坐標(biāo)向上移動(dòng)。而且如果這兩個(gè)值大于當(dāng)前屏幕的大小,鼠標(biāo)只能移到屏幕最邊界的位置。

鼠標(biāo)移動(dòng)操作在測試環(huán)境中比較常用到的場景是需要獲取某元素的 flyover/tips,實(shí)際應(yīng)用中很多 flyover 只有當(dāng)鼠標(biāo)移動(dòng)到這個(gè)元素之后才出現(xiàn),所以這個(gè)時(shí)候通過執(zhí)行 move_to_element(to_element) 操作,就能達(dá)到預(yù)期的效果。

根據(jù)我個(gè)人的經(jīng)驗(yàn),這個(gè)方法對(duì)于某些特定產(chǎn)品的圖標(biāo)的 flyover/tips 也不起作用,雖然在手動(dòng)操作的時(shí)移動(dòng)鼠標(biāo)到這些圖標(biāo)上面可出現(xiàn) flyover,但當(dāng)使用 WebDriver 來模擬這一操作時(shí),雖然方法成功執(zhí)行,但 flyover 卻不出來。所以在實(shí)際應(yīng)用中,還需要對(duì)具體的產(chǎn)品頁面做相應(yīng)的處理。

現(xiàn)在我也找了很多測試的朋友,做了一個(gè)分享技術(shù)的交流群,共享了很多我們收集的技術(shù)文檔和視頻教程。
如果你不想再體驗(yàn)自學(xué)時(shí)找不到資源,沒人解答問題,堅(jiān)持幾天便放棄的感受
可以加入我們一起交流。而且還有很多在自動(dòng)化,性能,安全,測試開發(fā)等等方面有一定建樹的技術(shù)大牛
分享他們的經(jīng)驗(yàn),還會(huì)分享很多直播講座和技術(shù)沙龍
可以免費(fèi)學(xué)習(xí)!劃重點(diǎn)!開源的!??!
qq群號(hào):110685036

actionchains類鼠標(biāo)操作,經(jīng)驗(yàn)分享,性能測試,自動(dòng)化測試,selenium,測試工具,自動(dòng)化測試,postman,軟件測試

示例5:鼠標(biāo)懸停

action.click_and_hold().perform()  # 鼠標(biāo)在當(dāng)前位置按下并不釋放
# 鼠標(biāo) 在'設(shè)置' 上懸停
action.click_and_hold(driver.find_element_by_link_text('設(shè)置')).perform()
action.click_and_hold(element) 這個(gè)方法實(shí)際上是執(zhí)行了兩個(gè)動(dòng)作,首先是鼠標(biāo)移動(dòng)到元素 element,然后再 click_and_hold, 所以這個(gè)方法也可以寫成 action.move_to_element(element).click_and_hold()。

示例6:鼠標(biāo)拖拽

source = driver.find_element_by_id("kw")  # 獲取起始位置元素
target = driver.find_element_by_id("sk")  # 獲取目標(biāo)元素
# 將元素source拖動(dòng)到target的位置
ActionChains(driver).drag_and_drop(source, target).perform()

# 鼠標(biāo)拖拽動(dòng)作,將 source 元素向x、y軸方向移動(dòng) (xoffset, yoffset) ,其中 xoffset 為橫坐標(biāo),yoffset 為縱坐標(biāo)。
ActionChains(driver).drag_and_drop_by_offset(source, -100, 100).perform()

在這個(gè)拖拽的過程中,已經(jīng)使用到了鼠標(biāo)的組合動(dòng)作,首先是鼠標(biāo)點(diǎn)擊并按住 click_and_hold( source) 元素,然后執(zhí)行鼠標(biāo)移動(dòng)動(dòng)作 (move_to),移動(dòng)到 target 元素位置或者是 (xoffset, yoffset) 位置,再執(zhí)行鼠標(biāo)的釋放動(dòng)作 (release)。所以上面的方法也可以拆分成以下的幾個(gè)執(zhí)行動(dòng)作來完成:

ActionChains(driver).click_and_hold(source).move_to_element(target).release().perform()

示例7:鼠標(biāo)釋放操

action = ActionChains(driver)
action.release().perform()  # 釋放按下的鼠標(biāo)

二、鍵盤操作

對(duì)于鍵盤的模擬操作,ActionChains類中有提供了按下key_down(keys)、釋放key_up(keys)、按下并釋放send_keys(keys_to_send) 等方法。

鍵盤的操作有普通鍵盤和修飾鍵盤兩種 。

普通鍵盤為常用字母數(shù)字等;修飾鍵盤為Ctrl、Shift、Alt等,修飾鍵盤一般和其他鍵組合使用的鍵。

使用鍵盤操作時(shí)需要引入from selenium.webdriver.common.keys import Keys包,Keys 包中含所有特殊用鍵。

1、普通鍵盤操作

鍵盤操作使用send_keys(*keys_to_send)方法,該方法支持多個(gè)按鍵連續(xù)操作,如果需要對(duì)某個(gè)元素執(zhí)行按鍵操作使用send_keys_to_element( element, *keys_to_send)方法。具體使用如下示例:

from selenium.webdriver.common.keys import Keys
action = ActionChains(driver)
action.send_keys(Keys.SPACE).perform()  # 按下并釋放空格鍵
action.send_keys(Keys.TAB).perform()  # 按下并釋放Tab鍵
action.send_keys(Keys.BACKSPACE).perform()  # 按下并釋放Backspace鍵
action.send_keys(Keys.BACKSPACE,Keys.SPACE).perform()  # 連續(xù)執(zhí)行按鍵動(dòng)作
action.send_keys(Keys.TAB).send_keys(Keys.TAB).perform() # 也可以這樣組合

'''
針對(duì)某個(gè)元素發(fā)出某個(gè)鍵盤的按鍵操作,或者是輸入操作
'''
element = driver.find_element_by_id('query')
# 對(duì)一元素使用鍵盤操作
action.send_keys_to_element(element, 'selenium').perform()
# 上面動(dòng)作拆解為下面動(dòng)作
action.click(element).send_keys('selenium').perform()

注意除了 ActionChains類有 send_keys(*keys_to_send)方法外,WebElement 類也有一個(gè) send_keys_to_element(*keys_to_send)方法,這兩個(gè)方法對(duì)于一般的輸入操作基本上相同,不同點(diǎn)在于以下幾點(diǎn):

第一:Actions 中的 send_keys(*keys_to_send)對(duì)修飾鍵操作后并不會(huì)釋放,也就是說當(dāng)調(diào)用 actions.send_keys(Keys.ALT)、 actions.send_keys(Keys.CONTROL)、 action.send_keys(Keys.SHIFT) 的時(shí)候,相當(dāng)于調(diào)用 actions.key_down(keys_to_send),而如果在現(xiàn)實(shí)的應(yīng)用中想要模擬按下并且釋放這些修飾鍵,應(yīng)該先action.reset_actions()重設(shè)action,然后再調(diào)用 action.send_keys(keys.NULL).perform()取消按下的修飾鍵。

第三點(diǎn),在 WebDriver 中,我們可以使用 WebElement 類的 send_keys() 來上傳附件,比如 element.send_keys(“D:\\test\\uploadfile\\test.jpg”)上文件,但不能使用ActionChains來上傳附件,因?yàn)閠ype=’file’的輸入框并不支持鍵盤輸入。

2、修飾鍵的使用

修飾鍵是鍵盤上的一個(gè)或者一組特別的鍵,當(dāng)它與一般按鍵同時(shí)使用時(shí),用來臨時(shí)改變一般鍵盤的普通行為。

修飾鍵一般跟普通鍵組合使用,比如 Ctrl+A、Alt+F4等。

我們電腦中的修飾鍵一般有以下幾種修:Ctrl、Alt(Option)、Shift、AltGr、Windows logo、Command、FN(Function)。一般使用的都是前三種。

對(duì)于修飾鍵的使用在Python selenium中一般使用按下key_down(keys)、釋放key_up(keys)、按下并釋放send_keys(keys_to_send)組合實(shí)現(xiàn)。

action = ActionChains(driver)
action.key_down(Keys.CONTROL).perform() # 按下ctrl鍵
action.key_up(Keys.CONTROL).perform() # 釋放ctrl鍵

action.key_down(Keys.SHIFT).perform() # 按下shift鍵
action.key_up(Keys.SHIFT).perform() # 釋放shift鍵

action.key_down(Keys.ALT).perform() # 按下alt鍵
action.key_up(Keys.ALT).perform() # 釋放alt鍵

示例:通過ctrl+c 來復(fù)制文本

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

三、WebElement.send_keys()鍵盤操作

WebElement元素對(duì)象下的send_keys也支持組合鍵盤操作。

代碼示例如下:

element = driver.find_element_by_id('query')
element.send_keys('selenium')
element.send_keys(Keys.BACK_SPACE)  # 按BACKSPACE刪除一個(gè)字符
element.send_keys(Keys.SPACE)  # 空格鍵(Space)
element.send_keys(Keys.CONTROL, 'a')  # 全選(Ctrl+A)
element.send_keys(Keys.CONTROL, 'c')  # 復(fù)制(Ctrl+C)
element.send_keys(Keys.CONTROL, 'v')  # 粘貼(Ctrl+v)
element.send_keys(Keys.TAB)  # 制表鍵(Tab)
element.send_keys(Keys.ESCAPE)  # 回退鍵(Esc)
element.send_keys(Keys.ENTER)  # 回車鍵(Enter)

最后感謝每一個(gè)認(rèn)真閱讀我文章的人,看著粉絲一路的上漲和關(guān)注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走!

actionchains類鼠標(biāo)操作,經(jīng)驗(yàn)分享,性能測試,自動(dòng)化測試,selenium,測試工具,自動(dòng)化測試,postman,軟件測試

軟件測試面試文檔

我們學(xué)習(xí)必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節(jié)等一線互聯(lián)網(wǎng)大廠最新的面試資料,并且有字節(jié)大佬給出了權(quán)威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。
?

actionchains類鼠標(biāo)操作,經(jīng)驗(yàn)分享,性能測試,自動(dòng)化測試,selenium,測試工具,自動(dòng)化測試,postman,軟件測試

actionchains類鼠標(biāo)操作,經(jīng)驗(yàn)分享,性能測試,自動(dòng)化測試,selenium,測試工具,自動(dòng)化測試,postman,軟件測試文章來源地址http://www.zghlxwxcb.cn/news/detail-853072.html

到了這里,關(guān)于selenium自動(dòng)化測試入門 —— 鍵盤鼠標(biāo)事件ActionChains的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 〖Python WEB 自動(dòng)化測試實(shí)戰(zhàn)篇⑦〗- 實(shí)戰(zhàn) - selenium的基本元素操作與鍵盤鼠標(biāo)模擬事件操作

    訂閱 Python全棧白寶書-零基礎(chǔ)入門篇 可報(bào)銷! 白嫖入口-請(qǐng)點(diǎn)擊我。 推薦他人訂閱,可獲取扣除平臺(tái)費(fèi)用后的35%收益,文末名片加V! 說明:該文屬于 Python全棧白寶書專欄, 免費(fèi)階段訂閱數(shù)量4300+ , 購買任意白寶書體系化專欄可加入 TFS-CLUB 私域社區(qū)。 福利:加入社區(qū)的小伙

    2023年04月08日
    瀏覽(34)
  • 【W(wǎng)EB自動(dòng)化測試】-鼠標(biāo)和鍵盤操作

    常見的鼠標(biāo)操作有:點(diǎn)擊、右擊、雙擊、懸停、拖拽等,對(duì)于這些鼠標(biāo)操作Selenium都封裝了相應(yīng)的操作方法。 1.1 為什么操作鼠標(biāo) 現(xiàn)在Web產(chǎn)品中村子啊豐富的鼠標(biāo)交互方式,作為一個(gè)Web自動(dòng)化測試框架。需要應(yīng)對(duì)這些鼠標(biāo)操作的應(yīng)用場景。 1.2 鼠標(biāo)操作的方法 說明:在Seleniu

    2024年02月15日
    瀏覽(26)
  • 曲鳥全棧UI自動(dòng)化教學(xué)(五):Selenium的鍵盤鼠標(biāo)事件詳解

    曲鳥全棧UI自動(dòng)化教學(xué)(五):Selenium的鍵盤鼠標(biāo)事件詳解

    在之前的教學(xué)中對(duì)于頁面的操作只涉及到了兩個(gè):點(diǎn)擊、輸入;其實(shí)Selenium的鍵盤鼠標(biāo)操作還有很多,現(xiàn)在就為你一一講解。 【Python測試交流群:8140 78962】 1.1 我們可以使用 send_keys 來輸入我們想要輸入的內(nèi)容 例如打開百度,搜索框輸入: 曲鳥 csdn : 1.2 也可以指定按鍵輸入

    2024年02月07日
    瀏覽(14)
  • 【Python自動(dòng)化測試】:模擬鼠標(biāo)和鍵盤操作

    在selenium中,把鍵盤的一系列按鍵封裝在 Keys類 中,因此,我們?cè)谀M鍵盤操作的時(shí)候,需要先導(dǎo)入Keys包,然后配合send_keys()方法使用 語法實(shí)現(xiàn): send_keys(Keys.BACK_SPACE) 語法實(shí)現(xiàn): send_keys(Keys.SPACE) 語法實(shí)現(xiàn): send_keys(Keys.CONTROL, \\\'a\\\') 語法實(shí)現(xiàn): send_keys(Keys.CONTROL, \\\'c\\\') 語法實(shí)現(xiàn):

    2024年02月03日
    瀏覽(29)
  • Web自動(dòng)化測試進(jìn)階 —— Selenium模擬鼠標(biāo)操作

    Web自動(dòng)化測試進(jìn)階 —— Selenium模擬鼠標(biāo)操作

    在實(shí)際的web產(chǎn)品測試中,對(duì)于鼠標(biāo)的操作,不單單只有click(),有時(shí)候還要用到右擊、雙擊、拖動(dòng)等操作,這些操作包含在ActionChains類中。 首先導(dǎo)入ActionChains類: from selenium.webdriver.common.action_chains import ActionChains context_click():右擊 double_click():雙擊 drag_and_drop():拖動(dòng) move_to_

    2024年02月09日
    瀏覽(22)
  • Selenium庫自動(dòng)化測試入門

    Selenium庫自動(dòng)化測試入門

    為什么要學(xué)selenium??前面已經(jīng)學(xué)了requests庫我們會(huì)發(fā)現(xiàn) 對(duì)于絕大多數(shù)動(dòng)態(tài)渲染的網(wǎng)頁來說,用requests進(jìn)行爬蟲比較繁瑣。 所以我們還是要學(xué)習(xí)一下selenium庫,以幫助我們更高效的爬取網(wǎng)頁。 環(huán)境: pychar 2020.1 x64版本 谷歌瀏覽器驅(qū)動(dòng),需要根據(jù)自己的谷歌瀏覽器版本所對(duì)應(yīng)的

    2024年02月04日
    瀏覽(21)
  • Selenium UI自動(dòng)化測試入門

    Selenium UI自動(dòng)化測試入門

    1.先下載Pycharm編輯器, 網(wǎng)站:下載地址 2.安裝python環(huán)境包 地址:Download Python | Python.org ? ?安裝的時(shí)候記住勾選自動(dòng)配置環(huán)境變量 3.在pycharm中配置python執(zhí)行器路徑 ? 4.安裝selenium庫 pip install selenium==4.1.1 ?查看當(dāng)前selenium版本 按住ctrl+鼠標(biāo)左鍵點(diǎn)擊 ?顯示版本號(hào) 5.安裝chromdriv

    2024年02月09日
    瀏覽(26)
  • 【自動(dòng)化測試入門】Selenium基礎(chǔ)(建議收藏)

    【自動(dòng)化測試入門】Selenium基礎(chǔ)(建議收藏)

    1、什么是 Selenium Selenium ?是支持? Web ?瀏覽器自動(dòng)化的一系列工具和庫的綜合項(xiàng)目。 它提供了擴(kuò)展來模擬用戶與瀏覽器的交互,用于擴(kuò)展瀏覽器分配的分發(fā)服務(wù)器, 以及用于實(shí)現(xiàn)? W3C WebDriver ?規(guī)范的基礎(chǔ)結(jié)構(gòu), 該 規(guī)范 允許您為所有主要? Web ?瀏覽器編寫可互換的代碼。

    2024年02月09日
    瀏覽(47)
  • Python + Selenium 自動(dòng)化測試入門-環(huán)境搭建

    Python + Selenium 自動(dòng)化測試入門-環(huán)境搭建

    1、python 開發(fā)環(huán)境安裝 ? ? ? ? python官網(wǎng)下載地址:https://www.python.org/downloads/ ? ? ? ? 命令行查看安裝python版本:python --version? python -V 2、pycharm 開發(fā)工具安裝 ? ? ? ? pycharm官網(wǎng)下載地址:??????https://www.jetbrains.com/pycharm/download/ 3、selenium 工具包安裝 ? ? ? ? 命令行

    2023年04月14日
    瀏覽(30)
  • Web自動(dòng)化測試:Selenium入門到精通

    Web自動(dòng)化測試:Selenium入門到精通

    說到自動(dòng)化測試,就不得不提大名鼎鼎的Selenium。Selenium 是如今最常用的自動(dòng)化測試工具之一,支持快速開發(fā)自動(dòng)化測試框架,且支持在多種瀏覽器上執(zhí)行測試。 Selenium學(xué)習(xí)難度小,開發(fā)周期短。對(duì)測試人員來說,如果你編程經(jīng)驗(yàn)不足,python + Selenium 是個(gè)很好的選擇。語法簡

    2024年02月03日
    瀏覽(52)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包