溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python selenium的基本元素與鍵盤(pán)鼠標(biāo)模擬事件實(shí)例分析

發(fā)布時(shí)間:2022-06-13 13:58:17 來(lái)源:億速云 閱讀:208 作者:iii 欄目:編程語(yǔ)言

本篇內(nèi)容主要講解“Python selenium的基本元素與鍵盤(pán)鼠標(biāo)模擬事件實(shí)例分析”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Python selenium的基本元素與鍵盤(pán)鼠標(biāo)模擬事件實(shí)例分析”吧!

Python selenium的基本元素與鍵盤(pán)鼠標(biāo)模擬事件實(shí)例分析

當(dāng)我們定位到具體的一個(gè)元素的時(shí)候就可以對(duì)這個(gè)元素進(jìn)行具體的操作,比如之前章節(jié)所執(zhí)行的 click 操作。這是最簡(jiǎn)單的操作,webdriver 還有其他的操作。比如元素的基本操作(點(diǎn)擊、輸入、清除),還有一些高級(jí)操作如鼠標(biāo)鍵盤(pán)模擬事件、彈出框處理、多頁(yè)面切換等… 這些都是需要我們了解的內(nèi)容,也是在做自動(dòng)化測(cè)試的時(shí)候經(jīng)常遇到的一些基本場(chǎng)景。

元素的基本操作

利用我們之前使用的本地 form.html 文件,練習(xí)一下元素的基本點(diǎn)擊、輸入、清除操作。

代碼示例如下:

# coding:utf-8

from time import sleep
from selenium import webdriver


driver = webdriver.Chrome()     # 啟動(dòng) Chrome瀏覽器的 driver
driver.maximize_window()        # Chrome 瀏覽器最大化
driver.get('file:///Users/workspace/WEB_TEST_HTML/form.html')       # 打開(kāi)本地的 "form.html" 文件
sleep(1)
email_element = driver.find_element_by_xpath('//*[@id="inputEmail"]')    # 通過(guò) xpath 定位 Email 輸入框。
email_element.send_keys('username')     # Email 輸入框輸入 "username"
sleep(1)
email_element.clear()                   # 清除 Email 輸入框內(nèi)容
sleep(1)
email_element.send_keys('admin')        # Email 輸入框輸入 "admin"

driver.find_element_by_xpath('//*[@id="inputPassword"]').send_keys('123456')    # Password 輸入框輸入 "123456"
sleep(1)
driver.find_element_by_xpath('/html/body/form/div[3]/div/button').click()		# 通過(guò) xpath 定位 "Sign in" 按鈕并點(diǎn)擊

driver.quit()

運(yùn)行結(jié)果如下:


Python selenium的基本元素與鍵盤(pán)鼠標(biāo)模擬事件實(shí)例分析


以上就是屬于元素的基本操作,其實(shí)就是最簡(jiǎn)單最基本的操作,接下來(lái)我們繼續(xù)看看高一點(diǎn)難度的操作 ---> 鼠標(biāo)鍵盤(pán)模擬事件操作。

鼠標(biāo)鍵盤(pán)模擬事件操作

利用我們本地的 sendkeys.html 文件,實(shí)現(xiàn)鼠標(biāo)鍵盤(pán)的模擬事件操作。sendkeys.html 文件的頁(yè)面元素如下圖:


Python selenium的基本元素與鍵盤(pán)鼠標(biāo)模擬事件實(shí)例分析


利用 Keys 模塊模擬鍵盤(pán)操作事件

ps:使用 Keys 模塊需要執(zhí)行導(dǎo)入操作: "from selenium.webdriver.common.keys import Keys"

鍵盤(pán)模擬事件代碼示例如下:

# coding:utf-8

from time import sleep
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()     # 啟動(dòng) Chrome瀏覽器的 driver
driver.maximize_window()        # Chrome 瀏覽器最大化
driver.get('file:///Users/workspace/WEB_TEST_HTML/sendkeys.html')   # 打開(kāi)本地的 "form.html" 文件
sleep(1)

# 這里需要注意一下,因?yàn)槲沂褂玫氖?nbsp;Mac ,所以鍵盤(pán) ctrl 事件是 "Keys.COMMAND" ,如果是 Win 系統(tǒng)的話,ctrl 事件是 "Keys.CONTROL"
driver.find_element_by_id('A').send_keys((Keys.COMMAND, 'a'))       # 通過(guò) id 定位 "id = A" 的元素,執(zhí)行鍵盤(pán)事件 command + a
driver.find_element_by_id('A').send_keys((Keys.COMMAND, 'x'))       # 通過(guò) id 定位 "id = A" 的元素,執(zhí)行鍵盤(pán)事件 command + x
sleep(1)
driver.find_element_by_id('B').send_keys((Keys.COMMAND, 'v'))       # 通過(guò) id 定位 "id = B" 的元素,執(zhí)行鍵盤(pán)事件 command + v
sleep(1)
driver.find_element_by_id('B').send_keys((Keys.COMMAND, 'a'))       # 通過(guò) id 定位 "id = B" 的元素,執(zhí)行鍵盤(pán)事件 command + a
sleep(1)
driver.find_element_by_id('B').send_keys((Keys.COMMAND, 'c'))       # 通過(guò) id 定位 "id = B" 的元素,執(zhí)行鍵盤(pán)事件 command + c
sleep(1)
driver.find_element_by_id('A').send_keys((Keys.COMMAND, 'v'))       # 通過(guò) id 定位 "id = A" 的元素,執(zhí)行鍵盤(pán)事件 command + v
sleep(1)

driver.quit()

運(yùn)行結(jié)果如下:


Python selenium的基本元素與鍵盤(pán)鼠標(biāo)模擬事件實(shí)例分析


利用 Action 類模擬鼠標(biāo)操作事件

PS:模擬鼠標(biāo)操作的場(chǎng)景并不是很多,了解即可。同時(shí) Action 類需要執(zhí)行 "from selenium.webdriver import ActionChains"

先來(lái)看一下,Action 類都支持哪些鼠標(biāo)的常用操作。

  • key_down:模擬鼠標(biāo)按鍵按下

  • key_up:模擬鼠標(biāo)按鍵彈起

  • click:模擬鼠標(biāo)按鍵點(diǎn)擊(單擊)

  • context_click:點(diǎn)擊鼠標(biāo)右鍵

  • double_click:模擬鼠標(biāo)按鍵點(diǎn)擊(雙擊)

  • send_keys:發(fā)送某個(gè)鍵到當(dāng)前焦點(diǎn)的元素

  • click_and_hold:點(diǎn)擊鼠標(biāo)左鍵,不松開(kāi)(拖拽)

  • release:釋放、松開(kāi)按住的鼠標(biāo)按鈕

  • move_to:鼠標(biāo)移動(dòng)到…

  • drag_and_drop:拖拽起來(lái)丟掉那里去…

  • perform:無(wú)論做了什么操作,最后都需要 perform 去提交

PS:實(shí)際場(chǎng)景中不會(huì)是用很復(fù)雜的鼠標(biāo)操作事件來(lái)進(jìn)行 自動(dòng)化Case的編寫(xiě),所以我們演示的也是比較簡(jiǎn)單的場(chǎng)景。

模擬鼠標(biāo)事件 代碼示例如下:

# coding:utf-8

from time import sleep
from selenium import webdriver
from selenium.webdriver import ActionChains


driver = webdriver.Chrome()     # 啟動(dòng) Chrome瀏覽器的 driver
driver.maximize_window()        # Chrome 瀏覽器最大化
driver.get('file:///Users/workspace/WEB_TEST_HTML/sendkeys.html')   # 打開(kāi)本地的 "form.html" 文件
sleep(1)

# 這里需要注意一下,因?yàn)槲沂褂玫氖?nbsp;Mac ,所以鍵盤(pán) ctrl 事件是 "Keys.COMMAND" ,如果是 Win 系統(tǒng)的話,ctrl 事件是 "Keys.CONTROL"
double_click_element = driver.find_element_by_id('A')
# 通過(guò) id 定位 "id = A" 的元素賦值給 double_click_element

ActionChains(driver).double_click(double_click_element).context_click(double_click_element).perform()
# 通過(guò) ActionChains 類將 "driver" 轉(zhuǎn)換,先雙擊、然后執(zhí)行右擊操作【這種串聯(lián)起來(lái)的操作,叫做鏈?zhǔn)接梅?,可以根?jù)這個(gè)鏈一直往下寫(xiě)】
sleep(2)

ActionChains(driver).context_click(double_click_element).perform()
# 通過(guò) ActionChains 類將 "driver" 轉(zhuǎn)換,然后執(zhí)行右擊操作
sleep(2)

driver.quit()

運(yùn)行結(jié)果如下:


Python selenium的基本元素與鍵盤(pán)鼠標(biāo)模擬事件實(shí)例分析

到此,相信大家對(duì)“Python selenium的基本元素與鍵盤(pán)鼠標(biāo)模擬事件實(shí)例分析”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI