最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python+Selenium鍵盤(pán)鼠標(biāo)模擬事件操作詳解

 更新時(shí)間:2022年06月08日 08:24:46   作者:渴望力量的哈士奇  
這篇文章主要帶大家一起學(xué)習(xí)一下Selenium的元素的基本操作與鼠標(biāo)鍵盤(pán)模擬事件的操作,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下

當(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)景。今天這一章節(jié),我們就先來(lái)學(xué)習(xí)一下元素的基本操作與鼠標(biāo)鍵盤(pán)模擬事件的操作吧。

元素的基本操作

利用我們之前使用的本地 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é)果如下:

以上就是屬于元素的基本操作,其實(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è)面元素如下圖:

利用 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)槲沂褂玫氖?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é)果如下:

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

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

先來(lái)看一下,Action 類(lèi)都支持哪些鼠標(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)槲沂褂玫氖?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 類(lèi)將 "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 類(lèi)將 "driver" 轉(zhuǎn)換,然后執(zhí)行右擊操作
sleep(2)

driver.quit()

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

以上就是使用 Action 類(lèi)實(shí)現(xiàn)一些特殊場(chǎng)景的模擬,比較常用的就是 雙擊、右擊、拖拽 等場(chǎng)景使用的略多一些,其他的場(chǎng)景使用 Action 類(lèi)就會(huì)特別少。

到此這篇關(guān)于Python+Selenium鍵盤(pán)鼠標(biāo)模擬事件操作詳解的文章就介紹到這了,更多相關(guān)Python Selenium鍵盤(pán)鼠標(biāo)事件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • OpenCV中Canny邊緣檢測(cè)的實(shí)現(xiàn)

    OpenCV中Canny邊緣檢測(cè)的實(shí)現(xiàn)

    本文主要介紹了OpenCV中Canny邊緣檢測(cè)的實(shí)現(xiàn),邊緣檢測(cè)一般是識(shí)別目標(biāo)圖像中亮度變化明顯的像素點(diǎn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Python中類(lèi)的mro與繼承關(guān)系詳解(二)

    Python中類(lèi)的mro與繼承關(guān)系詳解(二)

    這篇文章主要介紹了Python中類(lèi)的mro與繼承關(guān)系詳解,上一篇我們已經(jīng)通過(guò)mro相關(guān)資料介紹了mro繼承關(guān)系的基礎(chǔ)內(nèi)容,這片緊接著上一篇文章展開(kāi)詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2022-07-07
  • python爬取拉勾網(wǎng)職位數(shù)據(jù)的方法

    python爬取拉勾網(wǎng)職位數(shù)據(jù)的方法

    這篇文章主要介紹了python爬取拉勾網(wǎng)職位數(shù)據(jù)的實(shí)現(xiàn)方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • python 對(duì)dataframe下面的值進(jìn)行大規(guī)模賦值方法

    python 對(duì)dataframe下面的值進(jìn)行大規(guī)模賦值方法

    今天小編就為大家分享一篇python 對(duì)dataframe下面的值進(jìn)行大規(guī)模賦值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Lombok插件安裝(IDEA)及配置jar包使用詳解

    Lombok插件安裝(IDEA)及配置jar包使用詳解

    這篇文章主要介紹了Lombok插件安裝(IDEA)及配置jar包使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python對(duì)Excel進(jìn)行處理的實(shí)操指南

    Python對(duì)Excel進(jìn)行處理的實(shí)操指南

    這篇文章主要給大家介紹了關(guān)于Python對(duì)Excel進(jìn)行處理的實(shí)操指南,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python回文字符串及回文數(shù)字判定功能示例

    Python回文字符串及回文數(shù)字判定功能示例

    這篇文章主要介紹了Python回文字符串及回文數(shù)字判定功能,結(jié)合實(shí)例形式分析了Python針對(duì)字符串的反轉(zhuǎn)、判定等相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • 打包python 加icon 去掉cmd黑窗口方法

    打包python 加icon 去掉cmd黑窗口方法

    今天小編就為大家分享一篇打包python 加icon 去掉cmd黑窗口方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • 淺述python中深淺拷貝原理

    淺述python中深淺拷貝原理

    Python中,對(duì)象的賦值,拷貝(深/淺拷貝)之間是有差異的,如果使用的時(shí)候不注意,就可能產(chǎn)生意外的結(jié)果,其實(shí)這個(gè)是由于共享內(nèi)存導(dǎo)致的結(jié)果,下面我們來(lái)簡(jiǎn)單談下Python中的深拷貝和淺拷貝。
    2018-09-09
  • Python 多線程其他屬性以及繼承Thread類(lèi)詳解

    Python 多線程其他屬性以及繼承Thread類(lèi)詳解

    這篇文章主要介紹了Python 多線程其他屬性以及繼承Thread類(lèi)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論

高要市| 万州区| 安达市| 罗甸县| 金堂县| 青川县| 民权县| 湘西| 泸水县| 日照市| 民勤县| 阿拉善右旗| 陵水| 兴山县| 钦州市| 望谟县| 东山县| 淮滨县| 龙山县| 抚州市| 永春县| 禹城市| 巴塘县| 富顺县| 江永县| 武宁县| 赞皇县| 丹棱县| 安阳县| 刚察县| 南澳县| 车致| 繁峙县| 伊春市| 海晏县| 颍上县| 渭源县| 三原县| 石屏县| 扎囊县| 井冈山市|