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

Selenium教程04:鼠標(biāo)+鍵盤網(wǎng)頁的模擬操作

這篇具有很好參考價(jià)值的文章主要介紹了Selenium教程04:鼠標(biāo)+鍵盤網(wǎng)頁的模擬操作。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在webdriver 中,鼠標(biāo)操作都封裝在ActionChains類中,使用的時(shí)候需要導(dǎo)入這個(gè)包。

from selenium.webdriver import ActionChains

ActionChains方法列表如下:

click(on_element=None) ——單擊鼠標(biāo)左鍵

click_and_hold(on_element=None) ——點(diǎn)擊鼠標(biāo)左鍵,不松開

context_click(on_element=None) ——點(diǎn)擊鼠標(biāo)右鍵

double_click(on_element=None) ——雙擊鼠標(biāo)左鍵

drag_and_drop(source, target) ——拖拽到某個(gè)元素然后松開

drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某個(gè)坐標(biāo)然后松開

key_down(value, element=None) ——按下某個(gè)鍵盤上的鍵

key_up(value, element=None) ——松開某個(gè)鍵

move_by_offset(xoffset, yoffset) ——鼠標(biāo)從當(dāng)前位置移動(dòng)到某個(gè)坐標(biāo)

move_to_element(to_element) ——鼠標(biāo)移動(dòng)到某個(gè)元素

move_to_element_with_offset(to_element, xoffset, yoffset) ——移動(dòng)到距某個(gè)元素(左上角坐標(biāo))多少距離的位置

perform() ——執(zhí)行鏈中的所有動(dòng)作

release(on_element=None) ——在某個(gè)元素位置松開鼠標(biāo)左鍵

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

send_keys_to_element(element, *keys_to_send) ——發(fā)送某個(gè)鍵到指定元素

1.單擊左鍵+單擊右鍵+左鍵雙擊的示例用法。
python selenium 把鼠標(biāo)移動(dòng)到頁面的位置,我的Python教程,selenium,Python教程,python

# @Author : 小紅牛
# 微信公眾號:WdPython
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.get('http://sahitest.com/demo/clicks.htm')

click_btn = driver.find_element(By.XPATH, '//input[@value="click me"]')
# 雙擊按鈕
doubleclick_btn = driver.find_element(By.XPATH, '//input[@value="dbl click me"]')
# 右鍵單擊按鈕
rightclick_btn = driver.find_element(By.XPATH, '//input[@value="right click me"]')
action = ActionChains(driver)
# 鏈?zhǔn)秸{(diào)用
action.click(click_btn).double_click(doubleclick_btn).context_click(rightclick_btn).perform()

print(driver.find_element(By.NAME, 't2').get_attribute('value'))
# [CLICK][DOUBLE_CLICK][RIGHT_CLICK]
sleep(5)
driver.quit()

2.模擬鼠標(biāo)拖動(dòng)操作,該操作有兩個(gè)必要參數(shù),source:鼠標(biāo)拖動(dòng)的元素,target:鼠標(biāo)拖至并釋放的目標(biāo)元素。
python selenium 把鼠標(biāo)移動(dòng)到頁面的位置,我的Python教程,selenium,Python教程,python

from time import sleep
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get('http://sahitest.com/demo/dragDropMooTools.htm')

dragger = driver.find_element(By.ID, 'dragger')  # 被拖拽元素
item1 = driver.find_element(By.XPATH, '//div[text()="Item 1"]')  # 目標(biāo)元素1
item2 = driver.find_element(By.XPATH, '//div[text()="Item 2"]')  # 目標(biāo)2
item3 = driver.find_element(By.XPATH, '//div[text()="Item 3"]')  # 目標(biāo)3
item4 = driver.find_element(By.XPATH, '//div[text()="Item 4"]')  # 目標(biāo)4

action = ActionChains(driver)
action.drag_and_drop(dragger, item1).perform()  # 1.移動(dòng)dragger到目標(biāo)1
sleep(2)
action.click_and_hold(dragger).release(item2).perform()  # 2.效果與上句相同,也能起到移動(dòng)效果
sleep(2)
action.click_and_hold(dragger).move_to_element(item3).release().perform()  # 3.效果與上兩句相同,也能起到移動(dòng)的效果
sleep(2)
# action.drag_and_drop_by_offset(dragger, 400, 150).perform() # 4.移動(dòng)到指定坐標(biāo)
action.click_and_hold(dragger).move_by_offset(400, 150).release().perform()  # 5.與上一句相同,移動(dòng)到指定坐標(biāo)
sleep(5)

# 關(guān)閉瀏覽器
driver.close()

3.move_to_element()鼠標(biāo)懸停,當(dāng)你把鼠標(biāo)放在,百度更多位置時(shí),就會(huì)出現(xiàn)更多的功能,這就是一個(gè)懸停的效果,選擇里面的翻譯進(jìn)行點(diǎn)擊操作。如下圖所示
python selenium 把鼠標(biāo)移動(dòng)到頁面的位置,我的Python教程,selenium,Python教程,python
更多的網(wǎng)頁元素結(jié)構(gòu),里面有個(gè)name="tj_briicon"屬性,定位元素方法有很多,選擇一個(gè)就可以了。

<a href="http://www.baidu.com/more/" name="tj_briicon" class="s-bri c-font-normal c-color-t" target="_blank">更多</a>

翻譯的網(wǎng)頁元素結(jié)構(gòu),這里可使用By.LINK_TEXT去定位元素

<a class="img-spacing" href="http://fanyi.baidu.com/" target="_blank" name="tj_fanyi"><img src="https://dss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/topnav/newfanyi-da0cea8f7e.png"><div class="s-top-more-title c-font-normal c-color-t">翻譯</div></a>

具體實(shí)現(xiàn)代碼

# @Author : 小紅牛
# 微信公眾號:WdPython
from time import sleep
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
# 1.定位更多的元素位置
element = driver.find_element(By.NAME, 'tj_briicon')
# 實(shí)例化鼠標(biāo)
action = ActionChains(driver)
# 鼠標(biāo)懸停在百度更多
action.move_to_element(element)
# 執(zhí)行鼠標(biāo)事件
action.perform()
# 2.選擇更多里面的翻譯
href = driver.find_element(By.LINK_TEXT, '翻譯')
# print(href.text)  # 翻譯
href.click()
sleep(5)
driver.quit()

4.key_down+key_up的示例用法:

from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get('http://sahitest.com/demo/keypress.htm')

key_up_radio = driver.find_element(By.ID, 'r1')  # 監(jiān)測按鍵升起
key_down_radio = driver.find_element(By.ID, 'r2')  # 監(jiān)測按鍵按下
key_press_radio = driver.find_element(By.ID, 'r3')  # 監(jiān)測按鍵按下升起

enter = driver.find_elements(By.XPATH, '//form[@name="f1"]/input')[1]  # 輸入框
result = driver.find_elements(By.XPATH, '//form[@name="f1"]/input')[0]  # 監(jiān)測結(jié)果

# 監(jiān)測key_down
key_down_radio.click()
ActionChains(driver).key_down(Keys.CONTROL, enter).key_up(Keys.CONTROL).perform()
print(result.get_attribute('value'))
# key downed charCode=[0] keyCode=[17] CTRL
sleep(2)
# 監(jiān)測key_up
key_up_radio.click()
enter.click()
ActionChains(driver).key_down(Keys.SHIFT).key_up(Keys.SHIFT).perform()
print(result.get_attribute('value'))
# key upped charCode=[0] keyCode=[16] NONE
sleep(2)
# 監(jiān)測key_press
key_press_radio.click()
enter.click()
ActionChains(driver).send_keys('a').perform()
print(result.get_attribute('value'))
# key pressed charCode=[97] keyCode=[97] NONE
sleep(5)
driver.quit()

5.鍵盤操作,鍵盤對應(yīng)的方法在Keys類中。Keys 類幾乎提供了鍵盤上的所有按鍵方法,我們可以使用 send_keys + Keys 實(shí)現(xiàn)輸出鍵盤上的組合按鍵如 “Ctrl + C”、“Ctrl + V” 等。

from selenium.webdriver.common.keys import Keys
# 單鍵
element.send_keys(Keys.XXX)
# 組合鍵
element.send_keys(Keys.XXX, 'a') # 注意這里的組合鍵都是小寫

百度搜索李白的示例鍵盤用法

# @Author : 小紅牛
# 微信公眾號:WdPython
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')

input_ele = driver.find_element(By.ID, 'kw')
input_ele.send_keys('李白8')
sleep(1)
# 等價(jià)于BACKSPACE(刪除)
input_ele.send_keys(Keys.BACK_SPACE)
sleep(1)
# 組合鍵Ctrl+a全選
input_ele.send_keys(Keys.CONTROL, 'a')
sleep(1)
# 剪切
input_ele.send_keys(Keys.CONTROL, 'x')
sleep(1)
# 粘貼
input_ele.send_keys(Keys.CONTROL, 'v')
# 回車
input_ele.send_keys(Keys.ENTER)
sleep(5)
driver.quit()

6.常用的鍵盤事件:

NULL = '\ue000'
    CANCEL = '\ue001'  # ^break
    HELP = '\ue002'
    BACKSPACE = '\ue003'
    BACK_SPACE = BACKSPACE   #刪除鍵
    TAB = '\ue004'   #TAB鍵
    CLEAR = '\ue005'  
    RETURN = '\ue006'
    ENTER = '\ue007'   #回車鍵
    SHIFT = '\ue008'   #Shift鍵
    LEFT_SHIFT = SHIFT
    CONTROL = '\ue009'
    LEFT_CONTROL = CONTROL   #Ctrl 鍵
    ALT = '\ue00a'           #Alt 鍵
    LEFT_ALT = ALT
    PAUSE = '\ue00b'
    ESCAPE = '\ue00c'   #ECS鍵
    SPACE = '\ue00d'    #空格鍵 
    PAGE_UP = '\ue00e'   #PgUp 鍵
    PAGE_DOWN = '\ue00f' #PgDwon 鍵
    END = '\ue010'    #END 鍵
    HOME = '\ue011'   #HOME 鍵
    LEFT = '\ue012'  #左鍵
    ARROW_LEFT = LEFT  
    UP = '\ue013'    #上鍵
    ARROW_UP = UP   
    RIGHT = '\ue014'
    ARROW_RIGHT = RIGHT  #右鍵
    DOWN = '\ue015'      #下鍵
    ARROW_DOWN = DOWN  
    INSERT = '\ue016'    #insert鍵 
    DELETE = '\ue017'    #del鍵

    SEMICOLON = '\ue018'  #';'鍵
    EQUALS = '\ue019'     #'='鍵
  #數(shù)字鍵盤
    NUMPAD0 = '\ue01a'  # number pad keys
    NUMPAD1 = '\ue01b'
    NUMPAD2 = '\ue01c'
    NUMPAD3 = '\ue01d'
    NUMPAD4 = '\ue01e'
    NUMPAD5 = '\ue01f'
    NUMPAD6 = '\ue020'
    NUMPAD7 = '\ue021'
    NUMPAD8 = '\ue022'
    NUMPAD9 = '\ue023'
    MULTIPLY = '\ue024' # '*' 鍵
    ADD = '\ue025'   # '+' 鍵
    SEPARATOR = '\ue026'  #','鍵
    SUBTRACT = '\ue027'  # '-' 鍵
    DECIMAL = '\ue028'   # '.'鍵
    DIVIDE = '\ue029'    #'/'鍵

    F1 = '\ue031'  # function  keys
    F2 = '\ue032'
    F3 = '\ue033'
    F4 = '\ue034'
    F5 = '\ue035'
    F6 = '\ue036'
    F7 = '\ue037'
    F8 = '\ue038'
    F9 = '\ue039'
    F10 = '\ue03a'
    F11 = '\ue03b'
    F12 = '\ue03c'

    META = '\ue03d'
    COMMAND = '\ue03d'

完畢??!感謝您的收看

----------★★歷史博文集合★★----------
我的零基礎(chǔ)Python教程,Python入門篇 進(jìn)階篇 視頻教程 Py安裝py項(xiàng)目 Python模塊 Python爬蟲 Json Xpath 正則表達(dá)式 Selenium Etree CssGui程序開發(fā) Tkinter Pyqt5 列表元組字典數(shù)據(jù)可視化 matplotlib 詞云圖 Pyecharts 海龜畫圖 Pandas Bug處理 電腦小知識office自動(dòng)化辦公 編程工具
python selenium 把鼠標(biāo)移動(dòng)到頁面的位置,我的Python教程,selenium,Python教程,python文章來源地址http://www.zghlxwxcb.cn/news/detail-776133.html

到了這里,關(guān)于Selenium教程04:鼠標(biāo)+鍵盤網(wǎng)頁的模擬操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請?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)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

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

相關(guān)文章

  • python模擬鼠標(biāo)鍵盤操作

    優(yōu)點(diǎn):可以進(jìn)行簡單的重復(fù)人為操作,也相當(dāng)于實(shí)現(xiàn)了傻瓜式的自動(dòng)化 缺點(diǎn):也很明顯,在進(jìn)行程序運(yùn)行時(shí),你不能對鼠標(biāo)和鍵盤進(jìn)行使用(不然就會(huì)改變鼠標(biāo)位置和輸入內(nèi)容導(dǎo)致程序報(bào)錯(cuò)),所以最好使用一臺空閑的電腦。 很多軟件打開都需要自己的運(yùn)行環(huán)境,所以需要

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

    在selenium中,把鍵盤的一系列按鍵封裝在 Keys類 中,因此,我們在模擬鍵盤操作的時(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)
  • 【基礎(chǔ)】Python+Selenium自動(dòng)化測試之鍵盤、鼠標(biāo)操作

    目錄 鼠標(biāo)操作 導(dǎo)包方法 使用語法 鼠標(biāo)常用操作 鍵盤操作 導(dǎo)包方法 使用語法 鍵盤常用操作 鼠標(biāo)操作 模擬用戶在頁面上用鼠標(biāo)進(jìn)行的操作 導(dǎo)包方法 使用語法 使用 ActionChains 需要在鼠標(biāo)操作后,使用 .perform() 提交鼠標(biāo)操作 鏈?zhǔn)骄幊?分布式編程 鼠標(biāo)常用操作 鍵盤操作 模擬

    2024年04月28日
    瀏覽(21)
  • Python爬蟲(4)-Selenium模擬鼠標(biāo)操作

    Python爬蟲(4)-Selenium模擬鼠標(biāo)操作

    在Selenium4.2以后的版本里面鼠標(biāo)的操作方法都封裝在了ActionChains中需要時(shí)直接取即可。 使用方法就是調(diào)用ActionChains然后傳入你需要點(diǎn)擊的按鈕的位置即可 ActionChains(driver).double_click(f1).perform() perform()的意思就是執(zhí)行所有ActionChains中的動(dòng)作 具體的操作方法如下 鼠標(biāo)單擊就是直接

    2024年01月19日
    瀏覽(21)
  • python綁定游戲窗口模擬鍵盤鼠標(biāo)操作方法64位32位通用

    python綁定游戲窗口模擬鍵盤鼠標(biāo)操作方法 工具 python 64位和32位都可以 引用模塊 import win32gui import win32api,win32con 一、例子 二、獲取子窗口句柄如下: 三、使用win32gui發(fā)送消息 四、向窗口中插入圖片 其中,image_path代表要插入的圖片路徑,x和y代表圖片的坐標(biāo)。先使用Pillow庫(

    2024年01月21日
    瀏覽(24)
  • python自動(dòng)化運(yùn)維——模擬鍵盤鼠標(biāo)重復(fù)性操作Pyautoui

    python自動(dòng)化運(yùn)維——模擬鍵盤鼠標(biāo)重復(fù)性操作Pyautoui

    將程序與cmd.xls文件放在同一文件夾,每一步的截圖也放在當(dāng)前文件夾 通過圖片在屏幕上面進(jìn)行比對,找到點(diǎn)擊處進(jìn)行自動(dòng)化操作 自動(dòng)化rpa測試 1. Pyautoui 模塊:主要針對圖片進(jìn)行定位 pyautogui.locateCenterOnScreen() ,在屏幕上面找到該圖片位置后進(jìn)行 pyautogui.click 單擊,雙擊,右鍵

    2024年02月06日
    瀏覽(28)
  • 一個(gè)月學(xué)通Python(三十四):使用Selenium模擬人工操作及獲取網(wǎng)頁內(nèi)容

    結(jié)合自身經(jīng)驗(yàn)和內(nèi)部資料總結(jié)的Python教程,每天3-5章,最短1個(gè)月就能全方位的完成Python的學(xué)習(xí)并進(jìn)行實(shí)戰(zhàn)開發(fā),學(xué)完了定能成為大佬!加油吧!卷起來! 全部文章請?jiān)L問專欄:《Python全棧教程(0基礎(chǔ))》 再推薦一下最近熱更的:《大廠測試高頻面試題詳解》 該專欄對近年

    2024年02月13日
    瀏覽(28)
  • 「Python|Selenium|場景案例」如何模擬鼠標(biāo)單擊、雙擊、右擊、長按和拖拽等操作?

    「Python|Selenium|場景案例」如何模擬鼠標(biāo)單擊、雙擊、右擊、長按和拖拽等操作?

    本文主要介紹如何在使用selenium進(jìn)行自動(dòng)化測試的時(shí)候模擬各種鼠標(biāo)操作。 在進(jìn)行自動(dòng)化測試的時(shí)候,我們可能會(huì)需要需要進(jìn)行鼠標(biāo)操作的場景,比如: 測試右擊,查看是否網(wǎng)頁是否屏蔽了右鍵菜單 面對滑塊式登錄驗(yàn)證方式,模擬拖拽 模擬前進(jìn)或后退等鼠標(biāo)擴(kuò)展操作 ……

    2023年04月08日
    瀏覽(31)
  • 模擬鼠標(biāo)鍵盤操作PyUserInput

    模擬鼠標(biāo)操作是模擬鼠標(biāo)點(diǎn)擊和鍵盤輸入的操作,UI自動(dòng)化測試中非常實(shí)用。在Web UI、App UI、WinApp UI自動(dòng)化測試講解中借助Selenium和Appium框架下ActionChains、TouchAction、MouseButton等類已經(jīng)介紹了如何模擬鼠標(biāo)和鍵盤操作。本文將為大家介紹一個(gè)獨(dú)立的、任何時(shí)候都可以模擬鼠標(biāo)和

    2024年02月08日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包