亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python+Selenium鍵盤鼠標模擬事件操作詳解

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

當我們定位到具體的一個元素的時候就可以對這個元素進行具體的操作,比如之前章節(jié)所執(zhí)行的 click 操作。這是最簡單的操作,webdriver 還有其他的操作。比如元素的基本操作(點擊、輸入、清除),還有一些高級操作如鼠標鍵盤模擬事件、彈出框處理、多頁面切換等… 這些都是需要我們了解的內容,也是在做自動化測試的時候經常遇到的一些基本場景。今天這一章節(jié),我們就先來學習一下元素的基本操作與鼠標鍵盤模擬事件的操作吧。

元素的基本操作

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

代碼示例如下:

# coding:utf-8

from time import sleep
from selenium import webdriver

driver = webdriver.Chrome()     # 啟動 Chrome瀏覽器的 driver
driver.maximize_window()        # Chrome 瀏覽器最大化
driver.get('file:///Users/workspace/WEB_TEST_HTML/form.html')       # 打開本地的 "form.html" 文件
sleep(1)
email_element = driver.find_element_by_xpath('//*[@id="inputEmail"]')    # 通過 xpath 定位 Email 輸入框。
email_element.send_keys('username')     # Email 輸入框輸入 "username"
sleep(1)
email_element.clear()                   # 清除 Email 輸入框內容
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()		# 通過 xpath 定位 "Sign in" 按鈕并點擊

driver.quit()

運行結果如下:

以上就是屬于元素的基本操作,其實就是最簡單最基本的操作,接下來我們繼續(xù)看看高一點難度的操作 ---> 鼠標鍵盤模擬事件操作。

鼠標鍵盤模擬事件操作

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

利用 Keys 模塊模擬鍵盤操作事件

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

鍵盤模擬事件代碼示例如下:

# coding:utf-8

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

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

# 這里需要注意一下,因為我使用的是 Mac ,所以鍵盤 ctrl 事件是 "Keys.COMMAND" ,如果是 Win 系統(tǒng)的話,ctrl 事件是 "Keys.CONTROL"
driver.find_element_by_id('A').send_keys((Keys.COMMAND, 'a'))       # 通過 id 定位 "id = A" 的元素,執(zhí)行鍵盤事件 command + a
driver.find_element_by_id('A').send_keys((Keys.COMMAND, 'x'))       # 通過 id 定位 "id = A" 的元素,執(zhí)行鍵盤事件 command + x
sleep(1)
driver.find_element_by_id('B').send_keys((Keys.COMMAND, 'v'))       # 通過 id 定位 "id = B" 的元素,執(zhí)行鍵盤事件 command + v
sleep(1)
driver.find_element_by_id('B').send_keys((Keys.COMMAND, 'a'))       # 通過 id 定位 "id = B" 的元素,執(zhí)行鍵盤事件 command + a
sleep(1)
driver.find_element_by_id('B').send_keys((Keys.COMMAND, 'c'))       # 通過 id 定位 "id = B" 的元素,執(zhí)行鍵盤事件 command + c
sleep(1)
driver.find_element_by_id('A').send_keys((Keys.COMMAND, 'v'))       # 通過 id 定位 "id = A" 的元素,執(zhí)行鍵盤事件 command + v
sleep(1)

driver.quit()

運行結果如下:

利用 Action 類模擬鼠標操作事件

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

先來看一下,Action 類都支持哪些鼠標的常用操作。

  • key_down:模擬鼠標按鍵按下
  • key_up:模擬鼠標按鍵彈起
  • click:模擬鼠標按鍵點擊(單擊)
  • context_click:點擊鼠標右鍵
  • double_click:模擬鼠標按鍵點擊(雙擊)
  • send_keys:發(fā)送某個鍵到當前焦點的元素
  • click_and_hold:點擊鼠標左鍵,不松開(拖拽)
  • release:釋放、松開按住的鼠標按鈕
  • move_to:鼠標移動到…
  • drag_and_drop:拖拽起來丟掉那里去…
  • perform:無論做了什么操作,最后都需要 perform 去提交

PS:實際場景中不會是用很復雜的鼠標操作事件來進行 自動化Case的編寫,所以我們演示的也是比較簡單的場景。

模擬鼠標事件 代碼示例如下:

# coding:utf-8

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


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

# 這里需要注意一下,因為我使用的是 Mac ,所以鍵盤 ctrl 事件是 "Keys.COMMAND" ,如果是 Win 系統(tǒng)的話,ctrl 事件是 "Keys.CONTROL"
double_click_element = driver.find_element_by_id('A')
# 通過 id 定位 "id = A" 的元素賦值給 double_click_element

ActionChains(driver).double_click(double_click_element).context_click(double_click_element).perform()
# 通過 ActionChains 類將 "driver" 轉換,先雙擊、然后執(zhí)行右擊操作【這種串聯(lián)起來的操作,叫做鏈式用法,可以根據(jù)這個鏈一直往下寫】
sleep(2)

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

driver.quit()

運行結果如下:

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

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

相關文章

  • Python中使用SAX解析xml實例

    Python中使用SAX解析xml實例

    這篇文章主要介紹了Python中使用SAX解析xml實例,利用SAX解析XML文檔牽涉到兩個部分:解析器和事件處理器,需要的朋友可以參考下
    2014-11-11
  • Python faker生成器生成虛擬數(shù)據(jù)代碼實例

    Python faker生成器生成虛擬數(shù)據(jù)代碼實例

    這篇文章主要介紹了Python faker生成器生成虛擬數(shù)據(jù)代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Djang中靜態(tài)文件配置方法

    Djang中靜態(tài)文件配置方法

    這篇文章主要介紹Djang中靜態(tài)文件配置方法的相關資料,django靜態(tài)文件配置主要是為了讓用戶請求django服務器時能找到靜態(tài)文件返回,需要的朋友可以參考下
    2015-07-07
  • pytorch之pytorch?hook和關于pytorch?backward過程問題

    pytorch之pytorch?hook和關于pytorch?backward過程問題

    這篇文章主要介紹了pytorch之pytorch?hook和關于pytorch?backward過程問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python決策樹分類算法學習

    Python決策樹分類算法學習

    這篇文章主要為大家詳細介紹了Python決策樹分類算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • keras繪制acc和loss曲線圖實例

    keras繪制acc和loss曲線圖實例

    這篇文章主要介紹了keras繪制acc和loss曲線圖實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python網(wǎng)絡爬蟲中的同步與異步示例詳解

    Python網(wǎng)絡爬蟲中的同步與異步示例詳解

    這篇文章主要給大家介紹了關于Python網(wǎng)絡爬蟲中同步與異步的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-02-02
  • python寫一個隨機點名軟件的實例

    python寫一個隨機點名軟件的實例

    今天小編就為大家分享一篇python寫一個隨機點名軟件的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python getsizeof()和getsize()區(qū)分詳解

    Python getsizeof()和getsize()區(qū)分詳解

    這篇文章主要介紹了Python getsizeof()和getsize()區(qū)分詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Python簡直是萬能的,這5大主要用途你一定要知道!(推薦)

    Python簡直是萬能的,這5大主要用途你一定要知道?。ㄍ扑])

    這篇文章主要介紹了Python主要用途,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04

最新評論